충돌로 git merge를 취소하는 방법 동안 mybranch1, 나는했던 git merge –no-commit

나는 지점에 mybranch1있습니다. mybranch2에서 분기되었으며에서 mybranch1변경되었습니다 mybranch2.

그런 다음에있는 동안 mybranch1, 나는했던 git merge --no-commit mybranch2
그것은 병합 중에 충돌이 있었다 보여줍니다.

이제 모든 것을 ( merge명령) 버려서 mybranch1이전 상태로 되돌리고 싶습니다 . 어떻게해야할지 모르겠습니다.



답변

최신 힘내 :

git merge --abort

이렇게하면 작업 복사본을 병합하기 전의 상태로 재설정합니다. 즉, 병합 전에 항상 커밋되지 않은 변경 사항을 복원해야하지만 항상 안정적으로 수행 할 수는 없습니다. 일반적으로 커밋되지 않은 변경 사항과 병합하지 않아야합니다.

버전 1.7.4 이전 :

git reset --merge

이것은 오래된 구문이지만 위와 동일합니다.

버전 1.6.2 이전 :

git reset --hard

커밋되지 않은 병합을 포함하여 커밋되지 않은 모든 변경 사항을 제거합니다. 때때로이 동작은 위 명령을 지원하는 최신 버전의 Git에서도 유용합니다.


답변

실제로, 그것이 주어진 주어진 git merge --abort것과 동등한 것에 주목할 가치 가 있습니다. 이것은 git help for merge 명령에서 읽을 수 있습니다.git reset --mergeMERGE_HEAD

git merge --abort # is equivalent to git reset --merge when MERGE_HEAD is present.

더있을 때 실패한 병합 한 후 MERGE_HEAD, 실패한 병합으로 취소 할 수 없다 git reset --merge반드시으로하지만 git merge --abort, 그들은 같은 일에 대한 이전 및 새 구문뿐만 아니라 그래서 .

개인적으로 나는 git reset --merge일상 업무에서 훨씬 더 유용하다고 생각 합니다.


답변

최신 자식을 사용한다고 가정하면,

git merge --abort

답변

먼저 명령으로 병합을 실행 취소 할 수있는 두 가지가 있습니다.

git merge --abort

또는

명령으로 이전 커밋 상태로 일시적으로 이동할 수 있습니다.

git checkout 0d1d7fc32

답변

소스 트리

병합을 커밋하지 않으면 다른 브랜치를 두 번 클릭하고 (= 체크 아웃) 소스 트리에서 모든 변경 사항을 취소하는 것에 대해 물으면 동의합니다.