내 자식 프로젝트에 (Windows) SourceTree를 사용하고 있습니다. 명령 프롬프트 또는 Linux 터미널에서 할 수 있습니다.
하지만 대화식으로 시각적으로 충돌을 해결할 수있는 좋은 방법이 있는지 궁금합니다. 예를 들어 pull이 충돌을 감지하면 GUI 기반 충돌 도구 (예 : P4Merge)가 나타납니다. 가능할까요?
저는 항상 수작업으로 갈등을 해결하고 있습니다.
예를 들어 pull
SourceTree 의 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를 사용하고 있습니다.
또한 사용하려면 다음을 수행하십시오.
-
TortoiseMerge / Diff의 독립 실행 형 버전을 가져옵니다 (2011 년 7 월 이후 인 TortosieSVN 버전 1.6.7 이후 독립 실행 형으로 제공되지 않기 때문에 상당히 오래되었습니다). 이 답변의 링크 및 세부 정보 .
-
압축 풀기
TortoiseIDiff.exe
및TortoiseMerge.exe
임의의 폴더에 (c:\Program Files (x86)\Atlassian\SourceTree\extras\
내 경우). -
SourceTree에서
Tools > Options > Diff > External Diff / Merge
. 고르다TortoiseMerge
모두 드롭 다운 목록에서. -
히트
OK
와의 위치에 점 SourceTreeTortoiseIDiff.exe
와TortoiseMerge.exe
.
그 후 다음을 선택할 수 있습니다. Resolve Conflicts > Launch External Merge Tool
다음 로컬 저장소에서 충돌하는 각 파일의 컨텍스트 메뉴에서 . 이렇게하면 모든 갈등을 쉽게 처리 할 수있는 TortoiseMerge가 열립니다. 완료되면 TortoiseMerge를 닫으십시오 (변경 사항을 저장할 필요도 없으며 아마도 자동으로 수행 될 것입니다). 몇 초 후에 SourceTree가이를 정상적으로 처리해야합니다.
유일한 문제는 적절한 옵션이 선택되지 않은 경우에도 자동으로 백업 복사본을 생성한다는 것 입니다.
답변
충돌 해결-> 컨텐츠 메뉴가 비활성화 된 경우 보류중인 파일 목록에있을 수 있습니다. 드롭 다운 (상단)에서 충돌 파일 옵션을 선택해야합니다.
도움이되기를 바랍니다