Git 실행 취소 병합 시도 공급 업체 폴더에 새 디렉터리를 만드는 대신

공급 업체 디렉토리 (# 2)가있는 작업 디렉토리 (# 1)가 있습니다. 작곡가없이 수동으로 끌어오고 싶은 종속성이 하나 있습니다 (php 버전의 npm / gem). # 1에서 작업하고 있었는데 변경 사항을 저장 / 커밋하지 않았는데 # 2에서 라이브러리를 업데이트하기로 결정했습니다. vendor / myname으로 이동하여 git pull 저장소를 수행했습니다.

불행히도 공급 업체 폴더에 새 디렉터리를 만드는 대신 가져 와서 # 1로 병합하기 시작했습니다.

지금 나 한테있어:

  • 내 변경 사항이있는 # 1 폴더
  • 잘못된 저장소에서 원하지 않는 파일이있는 # 1 폴더
  • composer.json, Readme.md … (일반 파일)과 같은 # 1 병합 충돌

폴더 # 1에서 변경 한 내용을 잃지 않고이 마지막 자식 풀을 “실행 취소”하고 싶습니다. 어떻게 할 수 있습니까?



답변

git merge --abort 당신이 찾고있는 것일 수 있습니다.


답변

최신 Git :

git merge --abort

이전 :

git reset --merge

구식 (경고 : 모든 로컬 변경 사항을 무시 함) :

git reset --hard

그러나 실제로 존재 git merge --abort하는 git reset --merge주어진 것과 동일 하다는 것을 알아 차릴 가치 MERGE_HEAD가 있습니다. 이것은 merge 명령에 대한 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 2.10 (Q3 2016)에서는 옵션 git status을 제안 하므로 무엇을해야하는지 알게 될 것 git merge --abort입니다.

참조 b0a61ab 투입 하여 (2016년 7월 21일) 마티유 Moy와을 ( moy) .
(Merged by Junio ​​C gitsterHamano in commit 5a2f4d3 , 03 Aug 2016)

status: git merge --abort적절한 경우 ‘ ‘ 제안

git rebase --abort리베이스가 충돌하는 동안 이미 ‘ ‘을 (를) 제안했습니다 .
마찬가지로 ‘ git merge --abort‘에 대한 충돌 해결 중에 ‘ ‘를 제안하십시오 git merge.


답변