SourceTree / Git에서 대화식으로 (시각적으로) 충돌을 해결하는 방법


119

내 자식 프로젝트에 (Windows) SourceTree를 사용하고 있습니다. 명령 프롬프트 또는 Linux 터미널에서 할 수 있습니다.

하지만 대화식으로 시각적으로 충돌을 해결할 수있는 좋은 방법이 있는지 궁금합니다. 예를 들어 pull이 충돌을 감지하면 GUI 기반 충돌 도구 (예 : P4Merge)가 나타납니다. 가능할까요?

저는 항상 수작업으로 갈등을 해결하고 있습니다.

예를 들어 pullSourceTree 의 git 메시지입니다.

git -c diff.mnemonicprefix=false -c core.quotepath=false pull --no-commit origin master
From W:\repo\
 * branch            master     -> FETCH_HEAD   

Updating 33c07bf..41e0249

error: Your local changes to the following files would be overwritten by merge:
    foo.cpp
    goo.cpp
    goo.hpp
Please, commit your changes or stash them before you can merge.
Aborting    

Completed with errors, see above.

답변:


135

SourceTree에서 Tools-> Options를 클릭합니다. 그런 다음 "일반"탭에서 확인란을 선택하여 SourceTree가 Git 구성 파일을 수정할 수 있도록합니다.

그런 다음 "Diff"탭으로 전환하십시오. 하단에서 드롭 다운을 사용하여 diff 및 병합을 수행하는 데 사용할 외부 프로그램을 선택합니다. 나는 KDiff3를 설치 했고 충분히 좋아합니다. 완료되면 확인을 클릭합니다.

이제 병합이 있으면 Actions-> Resolve Conflicts-> Launch External Merge Tool 아래로 이동할 수 있습니다.


4
나는 이것을 시도했지만 결국 비교가 시작되는 것을 보지 못했습니다. 비교 파일이 생성되는 것을 보았지만 그게 전부입니다. 갈등을 해결할 수 없습니다. 이것을 표준 / 기본 비교로 변경하는 것도 도움이되지 않는 것 같습니다.
Echiban 2013

1
@echiban 아마도 3 방향 병합을 허용하지 않는 Beyond Compare에 대한 표준 라이선스를 가지고있을 것입니다. 당신은 자식 mergetool로 사용하는 프로 갈 필요
pierdevara

6
구성하려면 모든 단계를 수행 한 후 "실행 외부 병합 도구는"여전히 나를 위해 흐리게, 방법은 활성화 없습니다
pal4life

2
또한 병합 충돌 파일을 선택하지 않았습니다. 일단 잘
됐습니다

2
회색으로 표시되기 전에 커밋 목록에서 "Uncommited changes"항목을 클릭해야했습니다.
Micah Zoltu 2015 년

11

저는 매우 쉽고 편리한 비교 / 병합 도구 인 TortoiseMerge / Diff와 함께 SourceTree를 사용하고 있습니다.

또한 사용하려면 다음을 수행하십시오.

  1. TortoiseMerge / Diff의 독립 실행 형 버전을 가져옵니다 (2011 년 7 월 이후 인 TortosieSVN 버전 1.6.7 이후 독립 실행 형으로 제공되지 않기 때문에 상당히 오래되었습니다). 이 답변의 링크 및 세부 정보 .

  2. 압축 풀기 TortoiseIDiff.exeTortoiseMerge.exe임의의 폴더에 (c:\Program Files (x86)\Atlassian\SourceTree\extras\ 내 경우).

  3. SourceTree에서 Tools > Options > Diff > External Diff / Merge. 고르다TortoiseMerge 모두 드롭 다운 목록에서.

  4. 히트 OK와의 위치에 점 SourceTree TortoiseIDiff.exeTortoiseMerge.exe.

그 후 다음을 선택할 수 있습니다. Resolve Conflicts > Launch External Merge Tool 다음 로컬 저장소에서 충돌하는 각 파일의 컨텍스트 메뉴에서 . 이렇게하면 모든 갈등을 쉽게 처리 할 수있는 TortoiseMerge가 열립니다. 완료되면 TortoiseMerge를 닫으십시오 (변경 사항을 저장할 필요도 없으며 아마도 자동으로 수행 될 것입니다). 몇 초 후에 SourceTree가이를 정상적으로 처리해야합니다.

유일한 문제는 적절한 옵션이 선택되지 않은 경우에도 자동으로 백업 복사본을 생성한다는 것 입니다.


4

충돌 해결-> 컨텐츠 메뉴가 비활성화 된 경우 보류중인 파일 목록에있을 수 있습니다. 드롭 다운 (상단)에서 충돌 파일 옵션을 선택해야합니다.

도움이되기를 바랍니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.