programing

Git와 충돌 병합을 실행 취소하는 방법

instargram 2023. 7. 6. 21:47
반응형

Git와 충돌 병합을 실행 취소하는 방법

나는 지점에 있습니다.mybranch1.mybranch2에서 갈라진mybranch1그리고 변화들이 이루어졌습니다.mybranch2.

그러면, 켜지는 동안mybranch1,난 했어.git merge --no-commit mybranch2병합하는 동안 충돌이 있었다는 것을 보여줍니다.

이제 나는 모든 것을 버리고 싶습니다.merge지휘) 하도록mybranch1예전의 모습으로 돌아왔습니다.어떻게 해야 할지 모르겠어요.

최신 Git:

git merge --abort

그러면 작업 복사본이 병합되기 전 상태로 재설정됩니다.즉, 병합 전의 커밋되지 않은 변경 내용을 항상 안정적으로 복원할 수는 없습니다.일반적으로 커밋되지 않은 변경 사항과 병합해서는 안 됩니다.

버전 1.7.4 이전:

git reset --merge

이 구문은 이전 구문이지만 위의 구문과 동일합니다.

버전 1.6.2 이전:

git reset --hard

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

사실, 주목할 가치가 있습니다.git merge --abort와만 동등합니다.git reset --merge을 생각해 보면MERGE_HEAD존재합니다.이 정보는 병합 명령에 대한 git 도움말에서 읽을 수 있습니다.

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를 사용한다면,

git merge --abort

그렇지 않으면 이전 깃 버전에서 이 작업이 수행됩니다.

git reset --merge

또는

git reset --hard

명령을 사용하여 병합 실행 취소를 먼저 수행할 수 있는 두 가지 작업이 있습니다.

git merge --abort

또는

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

git checkout 0d1d7fc32 

전에 아무도 이것을 언급하지 않았기 때문에, 만약 당신이 이 오류가 발생한다면.

fatal: Could not reset index file to revision 'HEAD'.

위의 방법을 시도할 때 당신은 파일을 추가할 수 있습니다(그들을 포함). 그리고 나서 그냥 하는 것을 커밋하는 대신에.git stash사용할 수 있습니다.-m플래그를 지정하고 태그를 지정하면 마지막 상태를 복구해야 하는 경우 해당 상태를 찾을 수 있습니다.git stash list.

나를 위해.git reset --merge그리고.git merge --abort위 오류로 인해 실패했습니다.

소스 트리

병합을 커밋하지 않은 경우 다른 분기(=branch)를 두 번 클릭하고 소스 트리에서 모든 변경 내용을 취소할지 묻는 메시지가 나타나면 동의합니다.

언급URL : https://stackoverflow.com/questions/5741407/how-to-undo-a-git-merge-with-conflicts

반응형