Git 실행 취소 병합 시도


90

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

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

지금 나 한테있어:

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

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


Git은 커밋되지 않은 변경 사항이있는 경우 끌어 오기 또는 병합을 방지합니다.
CharlesB 2013 년

1
@CharlesB 병합을 중단했습니다. 프로젝트가 제트 병합되지 않았습니다. 내가 ... 풀 전에 방지 자식에 대해 아무것도 몰라
ewooycom

답변:


170

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


6
자식 리셋 --merge : 오래된 자식 버전에서
razz0

작동하지만 도움이되지 않습니다. a는 마십시오 git statusconfirm.-합니다
aliteralmind

17

최신 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일상 업무에서 훨씬 더 유용하다는 것을 알게 되었습니다.


2

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.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.