Git에서 병합을보고 편집하는 가장 좋은 도구는 무엇입니까? 별도의 패널에 "mine", "theirs"및 "ancestor"및 네 번째 "output"패널이 포함 된 3 방향 병합보기를 원합니다.
또한 해당 도구를 호출하는 지침은 훌륭 할 것입니다. (나는 여전히 오류를주지 않는 방식으로 kdiff3을 시작하는 방법을 알지 못했습니다.)
내 OS는 우분투입니다.
Git에서 병합을보고 편집하는 가장 좋은 도구는 무엇입니까? 별도의 패널에 "mine", "theirs"및 "ancestor"및 네 번째 "output"패널이 포함 된 3 방향 병합보기를 원합니다.
또한 해당 도구를 호출하는 지침은 훌륭 할 것입니다. (나는 여전히 오류를주지 않는 방식으로 kdiff3을 시작하는 방법을 알지 못했습니다.)
내 OS는 우분투입니다.
답변:
Meld 는 무료, 오픈 소스 및 크로스 플랫폼 (UNIX / Linux, OSX, Windows) diff / merge 도구입니다.
설치 방법은 다음과 같습니다.
meld
복잡한 diff로 지루한데, 같은 옵션을 선택할 수있는 것은 chose b for all unresolved conflicts
모든 덩어리에 대해 올바른 화살표를 수동으로 클릭하는 것보다 훨씬 낫습니다 meld
. 또한 입력 파일을 제자리에 편집하지 않고 특정 출력 파일로 병합 할 수 있다는 것은 실패한 오류를 제거하는 데 매우 중요합니다.
" git mergetool
" 와 함께 사용하도록 자체 병합 도구를 구성 할 수 있습니다 .
예:
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd p4merge '$BASE $LOCAL $REMOTE $MERGED'
git config --global mergetool.p4merge.trustExitCode false
그리고 당신이 그것에있는 동안, 당신은 또한 " git difftool
"에 대한 difftool로 설정할 수 있습니다 :
git config --global diff.tool p4merge
git config --global difftool.p4merge.cmd p4merge '$LOCAL $REMOTE'
유닉스 / 리눅스에서는 $BASE
쉘이 변수로 파싱 하는 것을 원하지 않습니다. 실제로 작동하려면 ~ / .gitconfig 파일에 나타나야합니다.
내가 가장 좋아하는 Beyond Compare 3 은 Pro 에디션 의 병합 기능을가지고있습니다. 병합의 좋은 점은 기본, 왼쪽, 오른쪽 및 병합 된 결과의 네 가지보기를 모두 볼 수 있다는 것입니다. P4V 보다 시각적이 좋지않지만 WinDiff보다 훨씬 더시각적입니다. 그것은 많은 소스 제어와 통합 윈도우 / 리눅스 및 작동합니다. 그것은 고급 규칙, 판, 수동 정렬과 같은 많은 기능을 가지고 있습니다 ...
P4V ( Perforce Visual Client ) 는 병합을위한 가장 명확한 인터페이스 중 하나를 제공하는 무료 도구입니다 ( 일부 스크린 샷 참조). 모든 주요 플랫폼에서 작동합니다. 이 도구에 대한 나의 주된 실망은 그 종류의 "읽기 전용"인터페이스 입니다. 파일을 수동으로 편집 할 수 없으며 수동으로 정렬 할 수 없습니다.
PS : P4Merge는 P4V에 포함되어 있습니다. Perforce는 클라이언트없이 도구를 얻는 것을 조금 어렵게 만듭니다.
SourceGear Diff / Merge 는 두 번째로 무료로 사용할 수있는 도구입니다. 병합 스크린 샷 을 확인하면 적어도 3 개의 뷰가있는 것을 볼 수 있습니다.
Meld 는 SourceGear Diff / Merge를 선호하는 새로운 무료 도구입니다. 이제는 Git 과 같은 일부 소스 제어를 기본적으로 지원한다는 뚜렷한 이점으로 대부분의 플랫폼 (Windows / Linux / Mac)에서도 작동합니다. 따라서 모든 파일에 대한 역사 차이를 훨씬 간단하게 만들 수 있습니다. 병합보기 ( 스크린 샷 참조)에는 SourceGear Diff / Merge 와 같이 3 개의 창이있습니다. 복잡한 경우에는 병합이 다소 어려워집니다.
추신 : 하루에 하나의 도구가 5 개의 뷰 병합을 지원하는 경우 Git에서 커밋을 체리 선택하면 실제로는 하나의 기초가 아니라 두 가지가 있기 때문에 정말 훌륭합니다. 두 개의 기본, 두 개의 변경 및 하나의 병합 결과.
kdiff3에 대해 좋은 소식을 듣습니다.
kdiff3
훨씬 더 많은 기능을 meld
가지고 있지만 더 나은 UI를 가지고 있습니다. 내 의견으로 meld
는 , 제공되는 기능 meld
이 충분 하면 쉽게 병합하는 것이 좋습니다 . 시도해보십시오 diffuse
.
내가 가장 좋아하는 시각적 병합 도구는 SourceGear DiffMerge입니다.
Vimdiff
vim을 배우고 IMHO를 배운 후에는 vimdiff는 배우기위한 아름다운 작은 직교 개념 중 하나 일뿐입니다. vim에서 온라인 도움말을 얻으려면 :
:help vimdiff
이 질문은 그것을 사용하는 방법을 다룹니다 : vimdiff를 사용하여 충돌을 어떻게 해결합니까?
어두운 시대의 마우스 사용에 갇혀 있고 병합하는 파일이 크지 않은 경우 meld를 권장합니다.
P4Merge 를 시도 할 수 있습니다 .
P4Merge를 사용하여 파일 버전 간의 차이점을 시각화하십시오. 컬러 코딩을 통한 병렬 또는 동시 개발로 인한 충돌을 해결합니다.
기능은 다음과 같습니다.
IntelliJ IDEA 에는 Resolve 마술 지팡이 가 포함 된 정교한 병합 충돌 해결 도구 가있어 병합을 크게 단순화합니다.
확산 은 내가 가장 좋아하지만 물론 편견입니다. :-) 사용하기 매우 쉽습니다 :
$ diffuse "mine" "output" "theirs"
확산은 파이썬으로 작성된 작고 간단한 텍스트 병합 도구입니다. Diffuse를 사용하면 코드 변경 사항을 쉽게 병합, 편집 및 검토 할 수 있습니다. 확산은 무료 소프트웨어입니다.
diffuse
아주 좋아 보인다. 방금 시도해 보았으며보다 나은 확산을 보였습니다 kdiff3
. 그러나, 함께 사용하려고하는데 git mergetool
서로 옆에 4 개의 파일 (로컬, 병합 결과, 원격,베이스)이 열리고 화면이 충분하지 않습니다. 나는 많은 가로 스크롤을해야했습니다. kdiff3는 서로 옆에 3을 표시하고 창의 아래쪽 절반에 결과를 표시합니다.
Araxis Merge http://www.araxis.com/merge Mac OS X에서 사용하고 있지만 Windows에서는 사용했지만 무료는 아니지만 몇 가지 멋진 기능이 있습니다 ... 창문.
비교할 수없는 diff 도구를 찾고 있다면 꽤 좋습니다 : http://www.scootersoftware.com/moreinfo.php
따라서 git merge의 경우 다음을 시도 할 수 있습니다.
git config --global merge.tool opendiff
나를 위해 최선을 다했다
나는 여기에 언급 된 많은 도구를 시도했지만 그중 아무것도 내가 찾고있는 것이 아닙니다.
개인적으로 Atom 은 차이점과 충돌 해결 / 병합을 시각화하는 데 유용한 도구라는 것을 알았습니다 .
병합과 관련하여 세 가지 뷰는 없지만 각 버전마다 색상이 강조 표시된 하나의 뷰로 결합됩니다. 코드를 직접 편집하거나 원하는 스 니펫 버전을 사용할 수있는 버튼이 있습니다.
더 이상 git 작업을 위해 편집기 또는 IDE로 사용하지 않습니다. 깔끔한 UI와 매우 직관적이며 사용자 정의가 가능합니다.
명령 행에서 시작하여 열려는 단일 파일을 전달하거나 프로젝트 폴더 (git repo)를 추가 할 수 있습니다.
내가 가진 유일한 문제는 새로 고침입니다. 큰 리포지토리로 작업 할 때 atom은 외부에서 변경 한 내용을 업데이트하는 데 느려질 수 있습니다. 작업이 끝나면 항상 닫은 다음 변경 / 커밋을 다시보고 싶을 때 다시 엽니 다. ctrl + shift + f5를 사용하여 창을 다시로드 할 수도 있습니다.
그리고 물론 무료입니다.
Linux, Mac 또는 Windows에 ECMerge diff / merge 도구 를 설치할 수 있습니다 . Git에 미리 설정되어 있으므로 사용 만하면 git mergetool
됩니다.
gitx http://gitx.frim.nl/
큰 커밋 세트로 작업 할 때 일부 버그가 있지만 변경 사항을 탐색하고 다른 변경 사항을 선택하여 준비한 다음 커밋하는 데 유용합니다.