2012-11-08 5 views
0

불행히도 직장에서 SVN 저장소로 작업해야합니다. 나는 git-svn을 통해 이것을한다. 내가 해결하고 싶지 않은 병합 충돌이 발생하는 경우, 내 본능이해야 할 지금 Git-svn 병합 및 체크 아웃 -theirs

!git svn fetch && git svn rebase -l 

입니다

: 내가 변경 한 후 이제, 그들과 내 자식 - svn을 "풀"별명이 최선을 다하고

git checkout --theirs conflicting_file 
git add conflicting_file 
git rebase --continue 

그러나 지금, 대신에 다른 개발자의 conflicting_file있는의, 인덱스에 이전에 있던 conflicting_file 지금 거기 보인다.

정확히 무엇이 여기에서 발생하며 올바른 방법은 무엇입니까?

+1

'git checkout --ours conflicting_file'이 (가) 작동합니까? 아마 그들은 섞여 있을지 모른다. – poke

답변

2

@poke는 맞았습니다 : "theirs"와 "ours"는 당신의 마음과 git의 행동으로 바뀌 었습니다. svn rebase를 수행하면 현재 브랜치 ("ours")는 svn 브랜치의 복제이고 병합/리베이스 된 변경 사항 ("theirs")은 로컬로 만든 변경 사항입니다. 동일한 목적으로 git-svn을 사용하면 별도의 git 브랜치에 물건을 넣고 'svn dcommit'을 할 준비가되면 svn 브랜치에만 가져옵니다. 그렇게하면 자신의 문제를 더 분명하게 생각할 수있을뿐만 아니라 준비가 될 때까지 갈등을 처리하지 않아도됩니다.

관련 문제