가장 좋은 3 방향 병합 도구는 무엇입니까? [닫은]


272

Subversion, Git, Mercurial 및 기타 업체는 3 방향 병합 (광산, 이들 및 "기본"개정판 조합)을 지원하고 충돌을 해결하기위한 그래픽 도구를 지원합니다.

어떤 도구를 사용하십니까? Windows, Mac OS X, Linux, 무료 또는 상업용.

대화를 시작하기 위해 내가 사용하거나 들어 본 몇 가지가 있습니다.

(이것은 Best Diff Tool 과 비슷하다는 것을 알고 있지만 3 가지 병합 도구에 명시 적으로 초점을 둔다는 점은 다릅니다 . 예를 들어 WinMerge 는 목록에서 제외됩니다.)



4
실제로 WinMerge 는 VCS 도구를 사용하여 3 가지 방식으로 비교하므로 3 개의 파일 (왼쪽, 오른쪽, 결과)을 명령 줄에 인수로 전달하면됩니다.
Zilvinas

3
주관적인 요인에 따라 달라 지므로 최상의 병합 도구가 무엇인지 말하기 어렵습니다. 그러나 차이점을 나타내는 기능을 찾고 있다면 semanticmerge.com
Daniel Peñalba

28
이 질문을 건설적이지 않은 것으로 어떻게 닫을 수 있습니까? 그것은 분명 많은 사람들이 생각하기에, 182 upvotes, 123 별과 11 답을 가지고 있습니다 건설.
HelloGoodbye

3
@Shuklaswag 내 질문과 어떻게 관련이 있습니까? 나는 그것이 왜 "건설적이지 않은"것으로 폐쇄되었는지 궁금해했다.
HelloGoodbye

답변:


167

KDiff3 오픈 소스, 크로스 플랫폼

Linux 및 Windows 용 동일한 인터페이스, 충돌 해결을위한 매우 스마트 한 알고리즘, 충돌 자동 해결을위한 정규식, ClearCase, SVN, Git, MS Visual Studio, 편집 가능한 병합 파일과 통합, 디렉토리 비교

키보드 탐색 기능이 뛰어납니다.

또한 https://stackoverflow.com/a/2434482/42473을 참조 하십시오.

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


10
KDiff3의 또 다른 장점 : Linux 및 Windows 용 동일한 인터페이스, 충돌 해결을위한 매우 스마트 한 알고리즘, 충돌 자동 해결을위한 정규식, ClearCase, SVN 및 Git과 통합, 편집 가능한 병합 파일, 디렉토리 비교
네 베스

3
@ThomasS 사실이 아닙니다 . 예를 보려면 다른 kdiff3답변 을 참조하십시오 . kdiff3행복하게 전체 디렉토리 트리를 diff하고 병합하며 수년 동안 해왔습니다! 과 같은 일부 도구 (예 git:)는 파일 당 파일을 시작할 수 있지만 다른 도구 (예 : 수은)는 전체 저장소를 3 방향으로 비교 / 병합 할 수 있습니다.
Mark Booth

2
KDiff3는 로컬 및 기타 변경 사항이 추가 된 라인 수에 차이가있을 때 끔찍합니다. 로컬로 A, B 및 C 행을 추가하지만 다른 변경 사항에 A 및 C 만 추가 된 경우 KDiff3는 A가 추가 된 것으로 확인한 다음 B와 C의 충돌을 찾은 다음 C를 추가합니다.
Neil

3
2016 년 에이 답변에 대한 의견이 있습니까?
Shadoninja

4
2014 년부터 지원되지 않습니다
Ruslan K.

106

다른 블로그 기사에서 P4merge를 들었 으므로 방금 확인했습니다 .

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

매우 매끄러운 인터페이스와 무료! 저는 충실한 Araxis Merge 사용자였습니다. 그러나 이것이 무료이며 굉장하다는 점을 고려하여 확인하시기 바랍니다.


11
Windows, Mac, Linux, FreeBSD 및 Solaris 10에서 사용 가능
Grant Limberg

36
@Art : 물론 P4Merge에서 병합 결과를 편집 할 수 있습니다. 나는 항상 그것을한다!
Sklivvz

9
p4merge는 기업에 "무료"가 아닙니다. 라이센스는 상업적 용도로 제한됩니다.
DH4

21
DH4 난 그냥 공식 억지로 지원에서 전자 메일을 수신 P4Merge입니다 @ 상업적 사용에 대한 무료 (내가 그보다 더 많은 기업을하지 않습니다, MS 작동))
오핫 슈나이더

4
P4merge에서 폴더 비교 지원이 없습니다. P4Merge에 정말 큰 도움이되었을 것입니다.
RuntimeException

95

Beyond Compare 3 Pro3 방향 병합을 지원 하며 매우 인상적인 병합 도구입니다. 그것은 상업적이지만 가치가 있지만 Windows, Linux 및 Mac OS X에서 사용할 수 있습니다.

의견에서 지적했듯이 비용도 저렴합니다.

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

참고 : 병합 세트가없는 대상, 즉 대상 파일에있는 병합 마커는 Beyond Compare에서 3 방향 파일 비교 / 편집을 제공하지 않습니다. Beyond Compare 는 그 기능이 목록에 있다고 말합니다 .

참고 : 3 방향 병합은 Beyond Compare 3 Pro 버전의 기능입니다.


16
+1 Beyond Compare는 특히 다른 기능을 고려할 때 가격 대비 가치가 있습니다.
jamiei 2015 년

2
좋은,하지만 선택 폴더에 대한 지원하지 않습니다
마이클 피츠 패트릭

9
마이클, 무슨 말인지 모르겠어요 : 비교 너머 폴더 diffing의 훌륭한 지원이 scootersoftware.com/moreinfo.php을 .
브루스 크리스텐슨

4
웹 사이트 에 명확하게 표시되어 있습니다 .-상태 Pro 버전에 대한 업데이트 된 답변은 3 방향 병합에 필요합니다.
Joshua McKinnon

2
Beyond Compare 4 Pro는 폴더 병합 지원을 추가했습니다.
Chris Kennedy

75

Melt Diff Viewer

Meld와 함께 일한 경험이 많았습니다. 분 기간에 지저분한 코드 병합을 수행해야 할 때 사용합니다. 사용하기 쉽고 깔끔한 인터페이스가 있습니다.

  • 오픈 소스
  • 지원되는 Linux, Windows 및 MacOS
  • 다중 파일 차이
  • 3 방향 비교 지원

우분투에서 설치는 다음과 같이 간단합니다. sudo apt-get install meld

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


3
+1 Meld는 매끄럽고 깨끗하며 "충분한"소프트웨어입니다.
Trevor Bramble

15
Meld에 결함이 있으며 시각적 단서가 잘못되었습니다.
aib

6
Meld는 git에서도 올바르게 작동하지 않습니다.
slikts

65
안타깝게도 Meld는 3 방향 병합 도구 가 아닙니다 (홈페이지에도 나와 있음). 3 방향 병합을 위해서는 4 개의 창 (기본 파일) 이 필요 합니다. 그러나 나는 meld를 좋아하고 훌륭하게 작동합니다.
lzap 2018 년

8
@lzap, 실제로 meld 3 방향이지만 문서화되지 않았고 한 달 정도 전에 3 방향 병합을 완전히 제거했습니다. is.gd/prKX5d 오래된 버전을 계속 사용하고 있다면 그래도 운이 좋다.
Magnus

45

vimdiff. 훌륭합니다. 3 피트 너비의 창문 만 있으면됩니다.

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


11
"gvimdiff -O branch1.txt base.txt branch2.txt merge.txt"를 수행하고 ctrl + w J를 사용하여 병합 버퍼를 화면 맨 아래로 이동할 수 있음을 알아낼 시간이있었습니다. 이것이 당신이 그것을 사용하는 방법입니까?
Wim Coenen

내가 gvim이 아닌 vim을 사용하는 것을 제외하고는 거의.
Paul Beckingham

7
downvote, 그것은 실제로 갈등을 해결하지 않으며 단지 차이입니다.
piotr

3
vimdiff 지금 병합 3 방향에 대한 좋은 자식 취급을 가지고 (즉, 4 창) - vim.wikia.com/wiki/...을
소니아 해밀턴

8
@piotr vimdiff는 실제로 충돌을 해결합니다. "diffg <bufferNum>"명령을 사용하여 맨 아래 분할 창에서 병합 된 파일을 빌드하십시오. buttom merge pane은 버퍼 1이고 다른 하나는 2,3,4입니다. diff로 건너 뛰려면 [c 및] c를 사용하십시오. 이것은 데비안 wheezy 7.7의 기본 기능입니다.
ikky

37

소스 기어 디퍼 병합 :

크로스 플랫폼, 진정한 3 방향 병합 기능으로 상업 또는 개인 용도로는 완전히 무료입니다.

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


1
나는 수년간 DiffMerge를 사용해 왔으며 그것을 좋아했습니다. 그러나 본인은 저자는 DIFF 병합 도구를 찾아 DiffMerge 및 P4Merge에 목록을 아래로 깍 된 곳 블로그 게시물을. 그는 인터페이스가 더 좋기 때문에 P4Merge를 사용했습니다. 오늘 막 P4Merge를 사용하기 시작했고 동의해야합니다. 특히, DiffMerge는 변경 사항을 제대로 표시하지 않으며 삭제 및 삽입으로 표시합니다. 서로 가까이에 많은 변경 사항이있는 경우 혼동 될 수 있습니다. P4Merge가 더 잘 표시합니다.
Simon Tewsi

1
나는 diffmerge가 무료아니라는 것을 알았 습니다. 비용은 $ 19입니다
erkfel

3
@erkfel, 맞지 않다. 등록은 선택 사항이며 소프트웨어는 무료로 사용할 수 있습니다. "SourceGear DiffMerge는 수상 경력에 빛나는 파일 diff 및 병합 도구로 2007 년부터 전문 개발자 및 애호가를 지원하고 있습니다. SourceGear DiffMerge는 무료로 사용할 수 있도록 라이센스가 허여되었습니다. 등록 된 사용자에게 감사하고 추가 등록을 장려하는 방법으로 4.2에서 몇 가지 새로운 기능을 추가했습니다 ... "(프로그램 텍스트)
Muhd

1
PiffMerge와 비교하여 DiffMerge에서 유용하다고 생각하는 것 중 하나는 P4Merge (현재 git에서 diffing 및 병합에 사용)와 비교할 때 Windows 파일 탐색기와 통합된다는 것입니다. 특히 한 폴더의 파일을 기억 한 다음 기억 된 파일을 다른 폴더의 다른 파일과 비교할 수 있습니다. 나는 한 달에 한두 번 유용하다고 생각하는데, 두 파일을 동일한 폴더로 옮겨서 비교할 필요가 없습니다 (예 : 소스 스크립트가 아닌 SQL 스크립트).
Simon Tewsi

1
@SimonTewsi : Mac 용 P4Merge에서는 파일이 같은 폴더에 있지 않아도됩니다. 파일 시스템을 탐색하고 컴퓨터의 어느 곳에서나 기본, 첫 번째 및 두 번째 파일을 선택할 수 있습니다.
Steve Samuels

32

축 병합 . 그것은 상업용이지만 가치가 있습니다 ... Windows 및 Mac OS X에서 사용할 수 있습니다.

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


5
동의합니다. 제가 사용한 것 중 최고입니다.
Dan Olson

1
내 관찰 : 약 5MB의 큰 파일을 처리 할 때 상대적으로 느립니다.
Naga Kiran

3
Araxis +1 개인적으로 사용할 돈을 기꺼이 지불 한 몇 안되는 도구 중 하나입니다. 다른 모든 것들은 어수선하고 혼란스럽고 창백합니다.
Dan Esparza

8
Araxis를 오랫동안 사용한 후 회사는 다음과 같은 이유로 KDiff3로 전환했습니다. (1) Araxis의 병합이 취소되면 파일은 여전히 ​​TortoiseHg에서 해결 된 것으로 표시됩니다. (2) Araxis는 자주 혼동되는 "병합 결과"창에 기본 개정 및 병합 결과가 혼합되어 표시됩니다. (3) TortoiseHg에서 KDiff3는 가능한 경우 사용자 상호 작용없이 자동으로 병합됩니다. (4) KDiff3의 병합 알고리즘은 더 나은 작업을 수행하는 것 같습니다. 그러나 우리는 여전히 Araxis를 우리의 비교 도구로 사용합니다 :)
Michael Platings

2
다른 답변에 대한 의견에서 언급했듯이 적절한 3 방향 병합 도구에는 4 개의 패널-기본, 로컬, 원격 및 결과가 있습니다 . 축이베이스와 결과를 팽팽하게하여 문제를 일으킬 수 있습니다.
neonblitzer

27

Kdiff3 충돌 해결 알고리즘은 정말 인상적입니다.

Subversion이 충돌을 나타내는 경우에도 Kdiff3는이를 자동으로 해결합니다. 동일한 인터페이스를 가진 Windows 및 Linux 용 버전이 있습니다. Tortoise 및 Linux 쉘과 통합 할 수 있습니다.

내가 가장 좋아하는 오픈 소스 소프트웨어 목록에 있습니다. 모든 컴퓨터에 설치하는 첫 번째 도구 중 하나입니다.

Subversion, Git, Mercurial 및 ClearCase에서 기본 diff 도구로 구성 할 수 있습니다. 또한 거의 모든 ClearCase 충돌을 해결합니다. Windows에서는 Windows 탐색기와 잘 통합되어 있습니다. 두 파일을 선택하고 마우스 오른쪽 버튼을 클릭하여 비교하거나 마우스 오른쪽 버튼을 클릭하여 파일을 '나중에 저장'한 다음 비교할 다른 파일을 선택하십시오.

병합 된 파일은 편집 가능합니다. 매끄러운 키보드 단축키가 있습니다.

비교 및 병합 디렉토리를 사용할 수도 있습니다. 보다: Kdiff3 디렉토리 비교

고급 기능은 자동 병합을 정의하기 위해 정규식을 사용하는 것입니다.

내 귀찮은 점은 좋아하는 배포 저장소에 없으면 컴파일하기가 약간 어렵다는 것입니다.


3
병합 알고리즘에 동의합니다. 그것은 매우 정교하며, 다른 도구로는 할 수없는 방식으로 당신이하고 싶은 것을 "알고"있는 것 같습니다. diff3 및 Subversion (blarg)을 정기적으로 분쇄하고 Git 병합에 도움이 될 수도 있습니다.
kevinarpe

다음으로 이동하는 키보드 단축키는 어디에 있고 a / b / c를 선택합니까?
mylord

@mylord : 작은 자동 진행 지연과 단축키 Ctrl-1 / 2 / 3을 사용하여 많은 충돌에 대해 A / B / C를 선택하십시오.
neves

KDiff3을 대체 한 것이 있습니까? 빅의 그것의 사용자하지만 요즘 더 나은 대안이 있다면 나 자신이보고 찾기
chrispepper1989가

1
@ chrispepper1989, 나는 여전히 Git에서 KDiff3을 사용합니다. KDiff3보다 훨씬 나은 3 웨이 병합 앱을 찾지 못했습니다. P4Merge는보다 현대적인 인터페이스를 가지고 있지만 테스트했을 때 병합 된 파일을 편집 할 수 없었습니다 (지금 할 수 있다고 생각합니다).
네 베스

13

나는 Ediff를 좋아 한다 . GNU Emacs 가 내장되어 있습니다.

3 방향 차이를 수행하려면 ediff-files3(3 개의 파일을 선택하는 경우) 또는 ediff-buffer3(이미 열려있는 3 개의 버퍼를 선택하는 경우)를 사용하십시오. 다음과 같은 화면이 나타납니다.

이맥스의 3 방향 차이

단어 차이 강조 표시에 유의하십시오.

당신은 칠 수있다 n거나 p하면서, 이전 / 다음 차이점에 가서 abA (가장 왼쪽 하나) 버퍼 영역을 복사합니다 B (가운데 하나) 버퍼, 및 유사하게 다른 두 글자의 조합에 a, b, c, rb버퍼에서 영역을 복원합니다. b. 히트 ?빠른 도움말 메뉴 또는 이맥스에서 diff3 병합에 미세 설명서를 읽어 .


6
내가 ediff를 좋아하는 한, 위의 두 버퍼 만 보입니다 .3 방향 병합에는 3 또는 4 개의 창이 있어야합니다 : 3 개의 병합 (로컬, 원격 및 공통 조상베이스) 및 최종 병합 출력 . 이 않습니다 는 Ediff의 3 방향 병합 것 같다 (라고 ediff-merge-with-ancestor)하지만 3 창 또는 4,있는 경우도 위의 스크린 샷이 반영되지 않습니다 모르겠어요.
ShreevatsaR

삼원 DIFF @ShreevatsaR을 보여주기 위해 편집
unhammer

@unhammer 감사합니다.이 방법이 더 낫지 만 여전히 3 개의 창만 표시되므로 3 개의 다른 diff (4 개의 창이있을 것입니다. kdiff3 및 기타 예 참조)인지는 확실하지 않습니다. 스크린 샷에 표시된 것이 병합되는 세 가지 경우 출력은 어디에 있습니까?
ShreevatsaR

하나 이상의 버퍼를 파괴적으로 수정합니다. 이것이 내가 ab버퍼 a에서 버퍼 b로 영역을 복사 한다고 언급 한 이유 입니다. ediff아직 네 개의 창 버전이 있다고 생각하지 않습니다 . (나는 emerge대신 전용 출력 버퍼를 사용하지만 , 조상을 보여emerge-files-with-ancestor 주지 않고 , 조상과 일치하는 버전 을보고 올바른 버전을 추측하기 위해서만 사용한다 .)
unhammer

11

울트라 비어 . 정말 좋으며 큰 파일 (1GB 이상)을 잘 처리하고 Windows / Mac / Linux에서 사용할 수 있으며 상업적이지만 가치가 있습니다.

Windows에서 UltraCompare Professional의 스크린 샷


3 웨이 병합을 지원하도록 설정하는 방법을 모르겠습니다 ... 중간에 기본 파일을 표시 할 수 있습니까, 왼쪽과 오른쪽에 2 개의 변경된 파일이 표시되므로 기본을 기반으로 두 파일에서 변경된 내용을 볼 수 있습니다 파일을 변경하고 2 개의 변경된 파일을 병합 한 결과가 맨 아래에 있습니까? 저는 UltraCompare 17.0을 사용하고 있습니다
Ricky

1
약간의 인터넷 검색 이이 ultraedit.com/support/tutorials-power-tips/ultracompare/…를 발견했습니다 . 6 단계 고급 병합에서 3 방향 병합에 대해 설명합니다.
MrTelly

11

확산 은 사용하기 쉬운 3 방향 병합 도구입니다. 언급 한 모든 플랫폼 및 버전 제어 시스템을 지원하며 동시에 3 개 이상의 파일을 비교할 수 있습니다.

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


2
또한 N 파일을 동시에 비교할 수 있습니다! 많은 동종 응용 프로그램의 구성 파일을 비교해야하는 경우에 유용합니다.
Pius Raeder

3 개 이상의 파일 비교에 Diffuse를 사용합니다
mohas


4

요약하면 ECMerge가 훌륭한 상용 제품이라는 것을 알았습니다. http://www.elliecomputing.com/products/merge_overview.asp

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

또한 Ultracompare가 매우 좋다는 MrTelly에 동의합니다. 한 가지 좋은 기능은 RTF와 Word 문서를 비교할 수 있다는 것입니다. RTF와 Word 문서는 영업 사원과 프로그래밍 방식으로 프로그래밍하고 문서를 올바르게 관리하지 않을 때 편리합니다.


첫 번째 링크가 작동하지 않고 500 오류를 반환합니다. 자원이 이동 된 경우 URL을 조정하십시오.
Sergey P. 일명 azure

@ SergeyP.akaazure-죄송합니다. 내 블로그는 소멸이다 - 내가 링크를 삭제했습니다 ..
스티브 Midgley
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.