SourceTree / Git에서 대화식으로 (시각적으로) 충돌을 해결하는 방법 할 수 있습니다. 하지만 대화식으로 시각적으로 충돌을

내 자식 프로젝트에 (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.



답변

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

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

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


답변

저는 매우 쉽고 편리한 비교 / 병합 도구 인 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가이를 정상적으로 처리해야합니다.

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


답변

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

도움이되기를 바랍니다


답변