2012-03-02 3 views
69

방금 ​​git pull --rebase origin master을 수행했는데 충돌이있었습니다.git rebase --skip은 정확히 무엇을합니까?

첫째,이 충돌은 내가 감동 hadnt 한 파일에, 그리고 약 10 다시 범했다. 왜 이런 일이 생길까요?

는 그때 실수로 git rebase --skip를 입력, 그것은 '패치 것을 생략'. 내가 커밋 생략했다고 걱정

, 나는 마스터 분기의 새 버전을 체크 아웃하고 난에 REBASE를했던 지점, 새로운 마스터 지점 사이의 DIFF했다. diff에 나타나는 유일한 변경 사항은 최신 커밋이며 로그를 보면 '건너 뛴'패치가 커밋 기록에 나타납니다.

아무도 여기서 무슨 일이 일어날 지 설명 할 수 있습니까? 그것이 말하는 않습니다

+7

어떻게 실수 자식은 --skip' 리베이스'입력 않습니다. 틀린가? :) – manojlds

+1

하! - 배를 타자는 것을 말하지만, 알 수없는 몇 가지 이유 때문에 --skip으로 나왔습니다. wasnt는 정말로 생각하고있다. :) – mrwooster

+5

쉘 히스토리가 좋다 (당신이 원하지 않는 것을 실행하게하기 위해). – Florian

답변

39

, 그것은 커밋 건너 뜁니다 . 같은 리베이스 동안 나중에 충돌 할 때 rebase --abort을 실행하면 건너 뛴 커밋은 물론 되돌릴 수 있습니다.

변경 사항이 이미 상류에 존재하는 경우, 힘내 당신의 확약을 적용 할 수 없습니다 (그러나 일반적으로 패치가 정확히 동일한 경우, 자동으로 생략한다). 자신의 커밋은 건너 뛰지 만, 변경 사항은 이미 업스트림에 적용 되었기 때문에 현재 HEAD에 여전히 존재합니다.

당신은 정말 당신이 당신의 중요한 변화를 제거하지 않았는지 확인해야합니다)()는 REBASE 전에 다시 상태로 이동합니다 reflog를 사용

+4

그런데 커밋이 여전히 로그에 표시되는 이유는 무엇입니까? 그리고 왜 누락 된 커밋이 diff에 표시됩니까? – mrwooster

+0

충돌이 무엇입니까? 패치가 이미 업스트림에 적용되었을 수도 있습니다. 자식은 빈 커밋에 대해 불평 할 것이다. – knittl

+3

예, 충돌이 이미 업스트림에서 해결되었습니다 ... 어떤 이유로 git rebase가 오래된 병합 충돌을 불러옵니다 ... 나에게 혼란을주는 또 다른 것? ... 이것은 충돌을 건너 뛰었지만 해결 된 패치를 적용했음을 의미합니다 갈등? – mrwooster

관련 문제