2009-02-09 7 views
16

각각의 원격 버전을 사용하여 파일 묶음에 대한 충돌을 자동으로 해결하도록 git에 지정할 수있는 방법이 있습니까? 예를 들어, 특정 디렉토리에있는 각 파일의 원격 버전을 가져 오려면?Git에서 원격 버전을 선택하여 병합 충돌을 자동으로 해결하는 방법?

+0

(SO [다른처럼 하나 개의 지점을 만들기위한 자식 명령] ** 답변을 참조 http://stackoverflow.com/questions/4911794/git-command-for-making-one-branch-like -another/4912267 # 4912267) ** git merge -s their **을 시뮬레이트하는 ** 모든 * 가능한 방법. – VonC

답변

16

git-merge은 병합 결과가 로컬 버전 인 "ours"전략 만 지원하는 것으로 보입니다. 그리고 그것은 전체 나무에만 해당됩니다.

병합 중에 충돌 상태로 들어가면 git-checkout--theirs 경로에 색인에서 파일을 검색 할 수 있습니다.

마지막으로 git-reset을 사용하여 트리의 특정 부분을 강제로 적용 할 수 있습니다.

기본적으로 merge -s ours으로 변경 한 다음 변경 사항을 역 적용하는 것이 좋습니다. http://www.seanius.net/blog/2011/02/git-merge-s-theirs/이 있습니다.

+0

10x David의 팁. git-checkout이 트릭을 수행하는 것 같습니다. 불행히도, --ours | theirs 옵션은 내 버전의 자식에서 지원되지 않습니다. (일부 업데이트를해야하는 것처럼 보입니다 ... –

+1

git-checkout에 --ours | --ir 옵션이 없으면, 당신은 --ours (stage # 2)에 'git show : 2 : full_path> file'을 사용할 수 있으며, 'the git show : 3 : full_path> file' 색인 --stage = 2 | 3 - file ... '배관 공사 –

+1

마지막 링크가 작동하지 않습니다. – Droidekas

4

recursive 전략 (-s)을 theirs 옵션 (-X)과 함께 사용할 수 있습니다. 즉 :

git merge -s recursive -X theirs source_branch 
관련 문제