IT박스

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

itboxs 2020. 7. 20. 07:50
반응형

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을 설치 했으며 충분히 좋아합니다. 완료되면 확인을 클릭하십시오.

이제 병합이있을 때 동작-> 충돌 해결-> 외부 병합 도구 시작으로 이동할 수 있습니다.


매우 쉽고 편리한 diff / merge 도구 인 TortoiseMerge / Diff와 함께 SourceTree를 사용하고 있습니다.

그것을 사용하려면 다음을 수행하십시오.

  1. TortoiseMerge / Diff의 독립형 버전을 구하십시오 (TortosieSVN 버전 1.6.7 이후, 즉 2011 년 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가이를 적절히 처리해야합니다.

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


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

그것이 도움이되기를 바랍니다

참고 URL : https://stackoverflow.com/questions/16800280/how-to-interactively-visually-resolve-conflicts-in-sourcetree-git

반응형