Git에 가장 적합한 시각적 병합 도구는 무엇입니까? [닫은]


599

Git에서 병합을보고 편집하는 가장 좋은 도구는 무엇입니까? 별도의 패널에 "mine", "theirs"및 "ancestor"및 네 번째 "output"패널이 포함 된 3 방향 병합보기를 원합니다.

또한 해당 도구를 호출하는 지침은 훌륭 할 것입니다. (나는 여전히 오류를주지 않는 방식으로 kdiff3을 시작하는 방법을 알지 못했습니다.)

내 OS는 우분투입니다.


15
"그러나 지금은 허용되지 않습니다"그렇기 때문에 요즘 스택 오버 플로우가 싫어집니다. 그 질문없이 너무 건조하고 지루합니다.
István Ujj-Mészáros

17
이 유형의 질문이 허용되는 스택 교환 사이트가 있습니까? 그렇지 않다면 ..
fzzylogic

16
그러한 질문이 허용되는 새로운 스택 오버플로가 필요한 때인 것 같습니다. 많은 사람들이 그러한 질문들을 분명히 밝히는 것은 많은 사람들에게 귀중한 것이며, 그 질문을 끝내는 것은 멍청한 일입니다. 관료주의로 이사회를 떠난 것 같습니다. 어떻게이 문제에 대한 설문 조사를하고 당신의 "고객이"원하는 것을 참조에 대한; P
표트르 Owsiak


6
문제는 전문가가 있기 때문에 여기에 없기 때문에 softwarerecs는 쓸모가 없습니다.
reinierpost

답변:


337

Meld 는 무료, 오픈 소스 및 크로스 플랫폼 (UNIX / Linux, OSX, Windows) diff / merge 도구입니다.

설치 방법은 다음과 같습니다.


53
원래 작성자가 사용중인 OS에 관심이있는 사람은 누구입니까? 그리고 3-way diff는 실제로 테스트에서 4 개의 창을 볼 때입니다. merge-base / local / remote / result
Evgeny 2012 년

16
meld복잡한 diff로 지루한데, 같은 옵션을 선택할 수있는 것은 chose b for all unresolved conflicts모든 덩어리에 대해 올바른 화살표를 수동으로 클릭하는 것보다 훨씬 낫습니다 meld. 또한 입력 파일을 제자리에 편집하지 않고 특정 출력 파일로 병합 할 수 있다는 것은 실패한 오류를 제거하는 데 매우 중요합니다.
Mark Booth

3
@naxa Meld에 Windows 설치 관리자가 있습니다 : code.google.com/p/meld-installer
Roman

6
kdiff3에서는 4 개의 뷰를 볼 수 있으며 meld는 3 개의 뷰만 허용합니다. Meld는 실제 병합 도구가 아니며 기본 버전보기를 표시하지 않기 때문에 diff 도구입니다.
야마모토 아키라

4
병합은 특히 끔찍합니다. "충돌하지 않는 변경 사항을 자동 전송"할 수있는 옵션이 없으므로 모든 병합이 끔찍하게 고통 스럽습니다.
Cerin

91

" 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 파일에 나타나야합니다.


10
p4merge는 (현재) 공식적으로 지원되는 git mergetools 중 하나이므로 도구 를 사용할 필요가 없습니다 . 더 이상 .cmd 변수.
Matt Ball

2
올바른 인용문을 사용하고 있는지 확인하십시오 : stackoverflow.com/a/1217994/3543437
kayleeFrye_onDeck

64

내가 가장 좋아하는 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에서 커밋을 체리 선택하면 실제로는 하나의 기초가 아니라 두 가지가 있기 때문에 정말 훌륭합니다. 두 개의 기본, 두 개의 변경 및 하나의 병합 결과.


7
퍼 포스 병합은 훌륭합니다. 그들의 것은, 일반 자료, 뉴 너의 : 그것은 4 창 병합 정말 도움이 도구가

4
P4는 Google 에서도 사용됩니다 .
Wernight

5
나머지 작업없이 P4Merge 만 사용자 정의 설치할 수 있습니다.
Dirk Bester

6
최신 버전의 p4merge에는 "읽기 전용"인터페이스가 없습니다. 아래쪽 창에서 병합 된 파일을 편집 할 수 있습니다.
Ian Ni-Lewis

1
이것은 정말 좋은 답변과 토론입니다. 공유해 주셔서 감사합니다!
Mark Good

44

kdiff3에 대해 좋은 소식을 듣습니다.


4
+1 : kdiff3는 meld보다 훨씬 우수하며 git에서 기본적으로 지원합니다.
마크 부스

3
kdiff3훨씬 더 많은 기능을 meld가지고 있지만 더 나은 UI를 가지고 있습니다. 내 의견으로 meld는 , 제공되는 기능 meld이 충분 하면 쉽게 병합하는 것이 좋습니다 . 시도해보십시오 diffuse.
Mikko Rantalainen

kdiff3에서는 4 개의 뷰를 볼 수 있으며 meld는 3 개의 뷰만 허용합니다. Meld는 실제 병합 도구가 아니며 기본 버전보기를 표시하지 않기 때문에 diff 도구입니다.
야마모토 아키라

43

내가 가장 좋아하는 시각적 병합 도구는 SourceGear DiffMerge입니다.

  • 그것은 무료입니다.
  • 크로스 플랫폼 (Windows, OS X 및 Linux).
  • 깨끗한 시각적 UI
  • 예상되는 모든 diff 기능 (Diff, Merge, Folder Diff).
  • 명령 행 인터페이스.
  • 사용 가능한 키보드 단축키.

사용자 인터페이스


3
자식과 함께 작동하도록 어떻게 구성합니까?
Ryan Lundy


2
소개해 주셔서 감사합니다 !! : D이 도구는 깨끗하고 meld보다 설치 및 작업 시간이 덜 걸립니다. 나는 meld를 설치하려고 30 분을 보낸다. 그러나 이것은 5 분 안에 했어요!
om39a

2
참고 : diffmerge에는 3 방향 병합 기능이 없습니다. 그 이유 때문에 몇 주 동안 시도한 후에 그것을 포기하고 있습니다
StormeHawke

좋은 도구이며 폴더를 비교할 수도 있습니다. 문제는 다소 느리다 (MacBookPro 15 2014, MacOS Catalina)
emKaroly

33

Vimdiff

vim을 배우고 IMHO를 배운 후에는 vimdiff는 배우기위한 아름다운 작은 직교 개념 중 하나 일뿐입니다. vim에서 온라인 도움말을 얻으려면 :

:help vimdiff 

이 질문은 그것을 사용하는 방법을 다룹니다 : vimdiff를 사용하여 충돌을 어떻게 해결합니까?

여기에 이미지 설명을 입력하십시오

어두운 시대의 마우스 사용에 갇혀 있고 병합하는 파일이 크지 않은 경우 meld를 권장합니다.


<3 vimdiff, svn을 '병합'도구로 사용하도록 설득하는 방법을 알 수 없습니다.
klokop

gvimdiff는이 목적으로도 잘 작동합니다.
새로운 123456

2
Fugitive 플러그인을 사용하면 훨씬 쉬워집니다! vimcasts.org/episodes/…
Erik Westrup

로컬 / 기본 및 기본 / 원격 사이의 차이점을 명확하게 볼 수있는 방법 만 있다면.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

24

P4Merge 를 시도 할 수 있습니다 .

P4Merge를 사용하여 파일 버전 간의 차이점을 시각화하십시오. 컬러 코딩을 통한 병렬 또는 동시 개발로 인한 충돌을 해결합니다.

기능은 다음과 같습니다.

  • 텍스트 파일 차이점 강조 및 편집
  • 줄 끝 또는 공백을 포함하거나 무시하도록 선택
  • Windows (CRLF), Mac (CR) 및 Unix (LF)에 대한 줄 끝 규칙 인식
  • 비 Perforce 응용 프로그램에서 명령 줄 매개 변수 사용 및 실행
  • 파일을 비교하고 병합 할 때 줄 번호 표시
  • 수정되었거나 고유하거나 변경되지 않은 파일 제외
  • 이름 또는 확장자로 파일 필터링
  • 익숙한 파일 / 폴더 계층 구조로 수정 된 자산 구성
  • JPEG, GIF, TIFF, BMP 및 기타 파일 형식 비교
  • Qt API를 사용하여 확장
  • 이미지 오버레이 또는 나란히 표시
  • 겹쳐진 이미지의 차이점 강조

내가 지금까지 본 것 중 가장 좋은 것. 3 방향보기 목록에서 변경 사항을 선택하여 충돌을 쉽게 해결
chovy



오늘 사용하기 시작했고 매우 직관적입니다.
자원

22

IntelliJ IDEA 에는 Resolve 마술 지팡이 가 포함 된 정교한 병합 충돌 해결 도구 가있어 병합을 크게 단순화합니다.

출처 : https://blog.jetbrains.com/dotnet/2017/03/13/rider-eap-update-version-control-database-editor-improvements/


2
아이디어의 병합 도구는 훌륭합니다. Idea의 Community Edition에서도 사용할 수 있으며 고급 병합 도구로 무료로 사용할 수 있습니다. 이것은 내가하고있는 일입니다 (대부분의 경우 VSCode를 사용하고 힘든 병합 사례에는 Idea를 사용합니다). VSCode는 꽤 잘 작동하며 때로는 Idea보다 우수합니다. 하지만 힘든 경우에 자신의 3 패널 레이아웃은 내가 본 최고의 도구입니다
godblessstrawberry

스크롤 막대 '여름 파일'이 함께 있지 않은 방법이 싫습니다! 내가 확산을 좋아하는 주된 이유!
앤서니

16

확산 은 내가 가장 좋아하지만 물론 편견입니다. :-) 사용하기 매우 쉽습니다 :

$ diffuse "mine" "output" "theirs"

확산은 파이썬으로 작성된 작고 간단한 텍스트 병합 도구입니다. Diffuse를 사용하면 코드 변경 사항을 쉽게 병합, 편집 및 검토 할 수 있습니다. 확산은 무료 소프트웨어입니다.


2
나는 정말 확산을 좋아하고 편견이 없습니다.
jturcotte

2
@ 데릭 모저 : diffuse아주 좋아 보인다. 방금 시도해 보았으며보다 나은 확산을 보였습니다 kdiff3. 그러나, 함께 사용하려고하는데 git mergetool서로 옆에 4 개의 파일 (로컬, 병합 결과, 원격,베이스)이 열리고 화면이 충분하지 않습니다. 나는 많은 가로 스크롤을해야했습니다. kdiff3는 서로 옆에 3을 표시하고 창의 아래쪽 절반에 결과를 표시합니다.
yairchu

spread는 meld와 비교하여 몇 가지 추가 병합 옵션을 제공합니다 (둘 중 하나를 선택하지 않고 두 버전을 결합 할 수 있음).
Audrius Meskauskas

확산은 창에서 즉시 사용할 수 있습니다 .CVS 저장소와 Git 저장소와 2 개의 폴더를 비교하여 git merge 충돌을 병합합니다. 확산 diff 파일은 단일 창에서 탭으로 열립니다. 확산으로 전환했습니다 (emacs의 ediff (너무 많은 기능, 90 년대에 유용))> vimdiff (복잡한 플러그인 키 입력)> p4merge> araxis (고유)> meld (너무 느림), tkdiff (만 cvs)> kdiff3 (좋은 , 정규 표현식 무시 기능)> winmerge (양호)> 확산 (빠르고 휴대 가능하며 예상대로 작동 함)) 처음으로 확산을 시도했습니다.
mosh

Diffuse에서 GUI 언어를 변경하는 방법은 무엇입니까?
zach


9

당신은 전달하여 자식 mergetool에 의해 사용되는 도구를 변경할 수 있습니다 git mergetool -t=<tool>또는 --tool=<tool>. vimdiff에서 기본값을 변경하려면을 사용하십시오 git config merge.tool <tool>.



6

따라서 git merge의 경우 다음을 시도 할 수 있습니다.

  • DiffMerge 는 Windows, OS X 및 Linux에서 파일을 시각적으로 비교하고 병합합니다.

    DiffMerge

  • Meld 는 시각적 차이 및 병합 도구입니다.

    Meld는 시각적 차이 및 병합 도구입니다

  • 2 개 또는 3 개의 텍스트 입력 파일 / 디렉토리를 비교하거나 병합하는 KDiff3 , diff and merge 프로그램).
  • opendiff(macOS의 Xcode 도구의 일부), 터미널에서 FileMerge 응용 프로그램을 시작하여 병합을 포함한 파일 또는 디렉토리를 그래픽으로 비교하는 명령 줄 유틸리티입니다 .

2
git config --global merge.tool opendiff나를 위해 최선을 다했다
James Matthew Mudgett

5

나는 여기에 언급 된 많은 도구를 시도했지만 그중 아무것도 내가 찾고있는 것이 아닙니다.

개인적으로 Atom 은 차이점과 충돌 해결 / 병합을 시각화하는 데 유용한 도구라는 것을 알았습니다 .

병합과 관련하여 세 가지 뷰는 없지만 각 버전마다 색상이 강조 표시된 하나의 뷰로 결합됩니다. 코드를 직접 편집하거나 원하는 스 니펫 버전을 사용할 수있는 버튼이 있습니다.

더 이상 git 작업을 위해 편집기 또는 IDE로 사용하지 않습니다. 깔끔한 UI와 매우 직관적이며 사용자 정의가 가능합니다.

  • 명령 행에서 시작하여 열려는 단일 파일을 전달하거나 프로젝트 폴더 (git repo)를 추가 할 수 있습니다.

  • 내가 가진 유일한 문제는 새로 고침입니다. 큰 리포지토리로 작업 할 때 atom은 외부에서 변경 한 내용을 업데이트하는 데 느려질 수 있습니다. 작업이 끝나면 항상 닫은 다음 변경 / 커밋을 다시보고 싶을 때 다시 엽니 다. ctrl + shift + f5를 사용하여 창을 다시로드 할 수도 있습니다.

그리고 물론 무료입니다.


3

병합 및 비교를 위해 다른 도구를 사용합니다.

git config --global diff.tool diffuse
git config --global merge.tool kdiff3

주먹은 다음에 의해 호출 될 수 있습니다.

git difftool [BRANCH] -- [FILE or DIR]

를 사용할 때 두 번째가 호출됩니다 git mergetool.



2

Visual Studio 를 사용하는 경우 Team Explorer 기본 제공 도구는 git merge 충돌을 해결하는 매우 유용한 도구입니다.


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