병합 중에 Git이 항상 최신 버전을 선택하도록 강제 하시겠습니까?


103

내가 merge자식이고 병합 충돌이 있다고 가정 해 봅시다 .

내 질문은 다음과 같습니다. git이 항상 충돌중인 코드의 최신 버전을 선택하도록 강제하여 충돌을 직접 해결할 필요가 없도록 할 수 있습니까?



그러나 나는 병합을 원하지만 (커밋을 무시하지 않음) 충돌을 자동으로 해결하고 싶습니다.
bartek

답변:


188

정확히 "최신"버전은 아니지만을 사용하여 항상 현재 브랜치 git merge branch -X ours의 버전을 선호하거나를 사용하여 병합되는 브랜치의 버전을 선호하도록 git에 알릴 수 있습니다 git merge branch -X theirs.

에서 man git-merge:

우리 것:

이 옵션은 우리 버전을 선호하여 충돌하는 덩어리가 자동으로 깨끗하게 자동 해결되도록합니다. 우리 쪽과 충돌하지 않는 다른 트리의 변경 사항은 병합 결과에 반영됩니다. 바이너리 파일의 경우 전체 내용은 우리 쪽에서 가져옵니다.

그들의 것:

이것은 "우리"의 반대입니다.


9
ours- theirs!! 그냥 말하면 명령이 무엇을하는지 이해하게됩니다! 나는 힘내를 사랑한다! : D
Haywire

14
참고 : 이미 사용한 경우 git merge branch, 당신이해야 git merge --abort이 작업을 수행하기 전에.
John Dvorak 2014

1
나를 위해 작동하지 않습니다. 여전히 병합을 중단합니다. error: The following untracked working tree files would be overwritten by merge:이 파일이 처음에이 브랜치에있는 이유도 모르겠지만 덮어 써야하고 git은 거부합니다.
mcv

2
추적되지 않는 경우 git add먼저 제거 (또는 )해야합니다. 에 대해 조금 읽으면 git clean도움이 될 수 있습니다.
Renato Zannon 2014 년

실행 후 git merge ours충돌 파일이 있으면 로그가 있습니까? 그리고 추적 할 수 git merge ours있습니까?
zx1986

19

나는 이것을 사용한다.

git fetch --prune
git reset --hard origin/master

2
이 솔루션은 내가 원했던 모든 것이 마스터 브랜치로 재정의 할 때 병합되지 않은 충돌을 수정하는 데 도움이되었습니다. 난 (지역)에서 --hard 마스터 리셋 GIT 사용
후안 멘데즈
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.