2014-03-07 6 views
3

로컬 브랜치에서 특정 변경을했습니다. 나는 저 지르지 않았다. 방금 모든 변경 사항의 색인을 생성하고 숨긴 것으로 옮겼습니다. 지금은 내가 지금 충돌이 발생하는 git에서 병합 실행을 넘어서 이동하십시오.

git stash apply 

을했던

git pull 

자식 후 풀을했다. 일식에서는 일반적인 자식 형식으로 충돌을 볼 수 있습니다.

<<<< Updated Upstream 
ksldjflsdk 
sdlkfjdslk 
sdlkfjsdlk 
=========== 
sdlkfjdslk 
dslkfjdslkfj 
dsklfjsdlkjf 
>>>>> Stashed Changes 

이제 충돌이 많은 파일이 있습니다. 저를 위아래로 보거나 병합하는 것은 매우 어렵습니다. 현재 병합 프로세스를 비교할 수있는 방법이 있습니까?

나는 자식 버전 1.8.3에, 그리고 난 당신이 넘어 명령 줄에서 비교 시작으로 괜찮아 겠지 3.2.3

답변

7

너머 비교 및 ​​Windows에서 걸. 당신은 당신의 글로벌 .gitconfig 파일에 다음 행을 추가 할 수 있습니다

[merge] 
    tool = bc3 
[diff] 
    tool = bc3 
[difftool "bc3"] 
    cmd = "\"c:/program files (x86)/beyond compare 3/bcomp.exe\" \"$LOCAL\" \"$REMOTE\"" 
[mergetool "bc3"] 
    cmd = "\"c:/program files (x86)/beyond compare 3/bcomp.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"" 

그런 다음 당신은 단순히 다음 명령을 사용하여 분쟁 해결을 시작할 수 있습니다

git mergetool # Starts Beyond Compare for all conflicted files, one at a time. 
git mergetool -- <file> # Starts B.C. just for the specified file. 
+0

이 많은 :) 감사했다 그래. 내 시나리오에서 git LOCAL, BASE 및 REMOTE 파일을 빠르게 설명해 주시겠습니까? – c2tarun

+0

'BASE'는'LOCAL'과'REMOTE'의 공통 조상입니다. 'LOCAL'과'REMOTE'가 나타내는 파일은 git 연산에 따라 바뀝니다. 병합하는 경우,'LOCAL'은 여러분이 분기에서 병합하는 변경을 나타내고,'REMOTE'는 ***로 합치는 파일을 나타냅니다. 리베이스하는 경우 역순으로 처리되며,'LOCAL'은 병합되는 파일을 나타내고, REMOTE는 병합중인 파일을 나타냅니다.'git stash apply'의 경우, 합병이나 리베이스처럼 될 수 있습니다. –

+0

나는 rebasing하지 않는다. 나는 간단한 병합과 푸시를 할 것입니다. – c2tarun