파일 병합을 완료하는 방법은 무엇입니까?


103

Git에서 파일을 병합 한 후 저장소를 가져 오려고했지만 오류가 발생했습니다.

병합을 완료하지 않았습니다. (MERGE_HEAD 존재)

병합은 어떻게 마무리합니까?

답변:


94

git status저장소의 상태 ( )를 확인하십시오 . 병합 해제 된 모든 파일 (직접 확인한 후)을 추가해야하며 ( git add) 병합 해제 된 파일이없는 경우git commit


11
그러나 모든 것이 커밋되고 ( git status깨끗한 작업 디렉토리가 표시됨) 위의 오류가 계속 발생하면 어떻게 될까요?
Marius Soutier 2012 년

1
@Marius git status메시지를 필터링하는 별칭이 아닌 표준을 실행해야합니다 . 현재 버전에서는 git status를 실행하면 "conclude merge"를 위해 무엇을해야하는지 메시지가 표시됩니다. 그리고 모든 것이 합쳐 졌다고 확신하고 어떤 것도 잃어 버리지 않을 것이라고 확신한다면, .git / MERGE *에있는 파일을 제거 할 수 있습니다. 이것은 병합하려고 한 것을 저장하고 그 합병에 대한 기본 커밋 메시지
MBO입니다.

1
고마워요, 그게 제가 결국 한 일이지만 어떻게 든 버그가있는 것 같습니다. 모든 것을 병합하고 커밋하면 MERGE_HEAD가 어떻게 존재할 수 있습니까?
Marius Soutier 2012 년

2
네, 방금 Marius와 같은 문제가 있었고 병합을 수행하고 충돌을 해결했지만 지금은 (어떻게 든) 커밋 할 것이 없습니다. 제안 된대로 MERGE * 파일을 수동으로 삭제해야했습니다.
사이먼 이스트

@johndpope power ( "tnx", 100)
knagode 2014

31

참고 및 업데이트 :

Git1.7.4 (2011 년 1 월) 부터 병합이 진행 중일 때 git merge --abort" git reset --merge" 와 같은을 갖게 되었습니다.

그러나 병합을 완료하려면 추가 할 내용이 남아 있지 않은 상태에서 rm -rf .git/MERGE*Git이 현재 병합을 잊어 버리는 정도면 충분할 수 있습니다.


MERGE_HEAD를 제거하면 결과 커밋에 부모가 하나만 있으므로 병합 된 분기의 기록이 없습니까?
Jason Goemaat 2015

@JasonGoemaat 우리 가 병합 을 중단 하려고하는 것을 고려 하면 어쨌든 "결과 커밋"은 없을 것입니다.
VonC 2015


1

SourceTree에서이 오류가 발생하면 Actions> Resolve Conflicts> Restart Merge로 이동하십시오.

사용 된 SourceTree 버전은 1.6.14.0입니다.


0

나는 같은 오류가 있었고 Google에서 찾은 기사를 따라 내 문제를 해결했습니다. 병합을 완료하지 않았습니다.


솔루션에 대한 링크는 항상 환영하지만 링크가 오래되었을 수 있으므로 답변에 필수 정보를 추가하십시오.
slfan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.