Công cụ hợp nhất hình ảnh tốt nhất cho Git là gì?


481

Công cụ tốt nhất để xem và chỉnh sửa hợp nhất trong Git là gì? Tôi muốn có chế độ xem hợp nhất 3 chiều, với "cái tôi", "của họ" và "tổ tiên" trong các bảng riêng biệt và bảng điều khiển "đầu ra" thứ tư.

Ngoài ra, hướng dẫn cách gọi công cụ đã nói sẽ tuyệt vời. (Tôi vẫn chưa tìm ra cách khởi động kdiff3 theo cách sao cho nó không cho tôi lỗi.)

Hệ điều hành của tôi là Ubuntu.

  0

Bạn muốn hướng dẫn cho hệ điều hành nào? 26 sep. 082008-09-26 00:45:49

+2

Sử dụng kdiff3 với "git mergetool" sẽ hoạt động tốt. Tôi không có vấn đề gì với điều đó. 30 sep. 102010-09-30 14:05:09

  0

Để chỉ khác, hãy thực hiện 'kdiff3 file1 file2a' hoặc' kdiff3 file1 file2a file2b' (giả định rằng 'file1' là một tổ tiên chung cho' file2a' và 'file2b'), và thực hiện ba cách hợp nhất với các tệp đó và xuất tệp đã hợp nhất thành 'file3' do' kdiff3 -b file1 file2a file2b -o file3'. 02 mar. 112011-03-02 18:45:14

+3

"Nhưng bây giờ nó không được phép" yeah, đó là lý do tại sao tôi ghét stackoverflow ngày nay. Đó là cách quá khô và nhàm chán mà không có những câu hỏi đó. 03 mar. 162016-03-03 00:50:21

  0

Nếu câu hỏi này được mở, tôi sẽ trả lời đề xuất [xxdiff] (http://furius.ca/xxdiff/). 4 tập tin hiển thị và mức độ khác biệt từ trên mỗi dòng 02 jul. 162016-07-02 12:05:30

+2

Có trang web stackexchange nào cho phép loại câu hỏi này không? Nếu không, cần có .. 07 jul. 162016-07-07 00:58:34

+2

Dường như đã đến lúc xảy ra Stack Overflow mới, nơi các câu hỏi như vậy được cho phép. Rõ ràng là nhiều người nêu ra những câu hỏi như vậy có giá trị đối với nhiều người đến nỗi thật ngu ngốc khi đóng chúng lại. Tôi nghĩ rằng bạn đã đi qua hội đồng quản trị với quan liêu. Làm thế nào về bạn thực hiện một cuộc thăm dò về vấn đề này và xem những gì "khách hàng" của bạn muốn, P 09 sep. 162016-09-09 11:49:23

+1

https://softwarerecs.stackexchange.com/ 13 feb. 172017-02-13 16:34:49

  0

Nó phụ thuộc. kdiff3 và p4merge đều miễn phí và hoạt động dễ dàng với git. kdiff3 có tính năng --auto hữu ích cho việc viết kịch bản. Tôi đã thấy rằng p4merge tốt hơn đáng kể khi tự động giải quyết xung đột. 06 apr. 172017-04-06 17:23:19

  0

Vấn đề: softwarerecs là vô ích bởi vì các chuyên gia ở đây, không có ở đó. 27 jun. 172017-06-27 17:09:27

283

Meld là một công cụ diff/hợp nhất.

Dưới đây là làm thế nào để cài đặt nó trên:

+2

Không có phiên bản windows nào xa như tôi có thể nói, và không sử dụng chế độ xem 3 chiều nghĩa là bạn không nhận được bản xem trước của phiên bản cuối cùng. 26 sep. 082008-09-26 00:45:04

+49

Nó thực sự có chế độ xem 3 chiều và áp phích ban đầu đang chạy Linux chứ không phải Windows, vì vậy tôi không hiểu tại sao đó lại là vấn đề. 26 sep. 082008-09-26 07:21:10

+48

ai quan tâm đến hệ điều hành mà tác giả gốc đang sử dụng ?, câu hỏi là đủ chung để được mọi người tìm kiếm. Và 3-cách khác biệt là khi bạn thực sự thấy 4 tấm với thử nghiệm; merge-base/local/remote/result 23 jan. 112011-01-23 13:16:41

+10

'meld' là tẻ nhạt với những khác biệt phức tạp, có thể chọn các tùy chọn như' đã chọn b cho tất cả các xung đột chưa được giải quyết' tốt hơn nhiều so với việc phải bấm vào mũi tên đúng cho mỗi hunk trong ' meld'. Ngoài ra, có thể hợp nhất vào một tệp đầu ra cụ thể thay vì chỉnh sửa các tệp đầu vào tại chỗ là vô giá để sao lưu các nerg bị lỗi. 02 mar. 112011-03-02 18:51:52

+17

Meld hoạt động tốt trên cửa sổ, bạn phải cài đặt python và sau đó là pygtk trước. Sau đó đổi tên bin/meld thành meld.py và nhấp đúp vào nó. 21 apr. 112011-04-21 00:06:55

  0

Meld không hoạt động chính xác như công cụ hợp nhất với git vì nó hiển thị các dấu hợp nhất. 22 dec. 112011-12-22 13:38:10

+4

Meld có thực sự là lựa chọn tốt nhất? Nó xấu xí và không trực quan theo ý kiến ​​của tôi. 04 mar. 122012-03-04 14:56:18

  0

@ jnnnnn tôi có thể xác nhận rằng meld chắc chắn hoạt động trên các cửa sổ. nó chỉ thiếu trình cài đặt. 09 aug. 122012-08-09 15:45:20

  0

Liên kết Ubuntu đã chết ngay bây giờ, nếu bạn có thể cập nhật nó? :) 13 feb. 132013-02-13 14:47:57

+1

@jooks http://meldmerge.org/. Meld có thể không phải là tốt nhất, nhưng nó hoạt động tuyệt vời cho tôi :) 14 feb. 132013-02-14 08:03:59

+3

@naxa Meld hiện có trình cài đặt Windows: https://code.google.com/p/meld-installer/ 18 mar. 132013-03-18 11:01:49

+2

Chúa ơi, bao nhiêu tuổi ? Fink cho OS X? 26 mar. 132013-03-26 17:03:48

  0

Đối với Ubuntu, đó chính xác là những gì tôi cần https://gist.github.com/fedir/7661179 26 nov. 132013-11-26 16:16:24

+2

Hiện tại có một trình cài đặt cửa sổ meld (ít nhất là 1,8). Truy cập trang web của họ và họ có liên kết tới Sourceforge. Mã Google có phải là di chuyển hay không, ai biết điều gì sẽ xảy ra. Vì vậy, hãy kiểm tra trang web của họ để tìm liên kết. 30 apr. 142014-04-30 17:14:12

  0

Cảm ơn người đàn ông bạn đã làm cho ngày của tôi. 13 jul. 152015-07-13 10:26:43

  0

Liên kết Mac bị hỏng. Dưới đây là một số khác: http://www.alexkras.com/how-to-run-meld-on-mac-os-x-yosemite-without-homebrew-macports-or-think/ 29 sep. 152015-09-29 18:02:57

+1

'nhẹ' không làm việc tốt khi xung đột trong git, 'p4merge' là tốt hơn. 04 feb. 162016-02-04 15:23:46

  0

Tôi sử dụng công cụ trực quan git trong NetBeans và nó hoạt động như một sự quyến rũ đối với tôi. 12 apr. 162016-04-12 09:14:29

+2

kdiff3 cho phép bạn xem 4 chế độ xem, chỉ cho phép 3 chế độ xem. Meld không phải là một công cụ hợp nhất thực sự, nó là một công cụ khác vì nó không hiển thị khung nhìn phiên bản cơ sở. 05 may. 162016-05-05 18:44:50

  0

Lưu ý: bạn cần phải cài đặt python 3.3 hoặc cao hơn cho mới nhất 'meld'. 10 jan. 172017-01-10 05:36:18

+1

Meld có một số vấn đề. Nó làm cho nó thực sự gây phiền nhiễu để làm "Mine sau đó họ" thay đổi. Đôi khi rất khó đọc. 08 may. 172017-05-08 15:41:38

+2

Meld là khủng khiếp, đặc biệt là đối với các hợp nhất. Nó không có tùy chọn để "tự động chuyển các thay đổi không xung đột", làm cho mọi hợp nhất trở nên đau đớn khủng khiếp. 25 may. 172017-05-25 22:40:13


38

yêu thích công cụ hợp nhất hình ảnh của tôi là SourceGear DiffMerge

  • Nó là miễn phí.
  • Nền tảng chéo (Windows, OS X và Linux).
  • Giao diện người dùng trực quan rõ ràng
  • Tất cả các tính năng khác mà bạn mong đợi (Khác biệt, Hợp nhất, Khác biệt thư mục).
  • Giao diện dòng lệnh.
  • Phím tắt có thể sử dụng.

User interface

+3

làm thế nào để bạn cấu hình nó để làm việc với git? 29 mar. 112011-03-29 21:59:56

  0

Lưu ý, tải xuống miễn phí. 22 feb. 122012-02-22 09:38:51

+2

Cảm ơn bạn đã giới thiệu nó cho tôi !! : D Công cụ này được sạch sẽ và mất ít thời gian để cài đặt và làm việc với hơn meld. Tôi dành nửa giờ cố gắng để cài đặt meld. Nhưng cái này tôi đã làm trong 5 phút !! 10 mar. 142014-03-10 16:03:05

+1

Lưu ý: diffmerge dường như không có tính năng hợp nhất 3 chiều. Tôi sẽ từ bỏ nó sau khi thử nó trong một vài tuần vì lý do đó 10 oct. 142014-10-10 15:30:36


34

Tôi nghe những điều tốt đẹp về kdiff3, dường như là giữa điều đó và meld (một áp phích khác đã sugge sted).

+3

+1: kdiff3 vượt trội so với meld và cũng được hỗ trợ bởi git. 02 mar. 112011-03-02 18:37:42

+3

'kdiff3' có nhiều tính năng hơn nhưng' meld' có giao diện người dùng tốt hơn. Theo tôi, 'meld' là tốt hơn cho việc kết hợp dễ dàng, nơi các tính năng được cung cấp bởi' meld' là đủ. Hãy nhớ thử 'diffuse' nữa. 07 aug. 132013-08-07 10:03:06

  0

kdiff3 cho phép bạn xem 4 chế độ xem, chỉ cho phép 3 chế độ xem. Meld không phải là một công cụ hợp nhất thực sự, nó là một công cụ khác vì nó không hiển thị khung nhìn phiên bản cơ sở. 05 may. 162016-05-05 18:41:53


7

Nếu bạn chỉ là tìm kiếm một công cụ diff ngoài so sánh là khá tốt đẹp: http://www.scootersoftware.com/moreinfo.php


6

Bạn có thể thay đổi công cụ được sử dụng bởi git mergetool bằng cách thông qua git mergetool -t=<tool> hoặc --tool=<tool>. Để thay đổi mặc định (từ vimdiff) sử dụng git config merge.tool <tool>.


15

Diffuse là yêu thích của tôi nhưng tất nhiên tôi là thiên vị. :-) Nó rất dễ sử dụng:

$ diffuse "mine" "output" "theirs" 

Diffuse là một công cụ văn bản hợp nhất nhỏ và đơn giản viết bằng Python. Với Diffuse, bạn có thể dễ dàng hợp nhất, chỉnh sửa và xem lại các thay đổi đối với mã của mình. Diffuse là phần mềm miễn phí.

+1

Tôi thực sự thích khuếch tán, và tôi không thiên vị. 11 sep. 092009-09-11 13:16:01

+2

@ Derrick Moser: 'diffuse' trông rất đẹp. Tôi đã thử nó ngay bây giờ và nó đã làm tốt hơn so với 'kdiff3'. Nhưng, tôi đang cố gắng sử dụng nó với 'git mergetool' và nó sẽ mở ra 4 tập tin bên cạnh nhau (địa phương, kết quả hợp nhất, từ xa, cơ sở), và màn hình của tôi không đủ rộng cho điều đó. Tôi phải làm rất nhiều cuộn ngang. kdiff3 chỉ hiển thị 3 cạnh nhau và kết quả ở nửa dưới của cửa sổ. 09 dec. 102010-12-09 09:54:08

  0

khuếch tán có một số tùy chọn hợp nhất bổ sung so với meld (cho phép tham gia cả hai phiên bản thay vì chọn một trong số chúng). 26 apr. 132013-04-26 15:24:50

  0

hoạt động khuếch tán ra khỏi hộp trên cửa sổ, để so sánh 2 thư mục, với CVS repo, với Git repo, hợp nhất git merge conflicts. Các tệp diff diff diff mở trong các tab trong một cửa sổ. Tôi chuyển sang khuếch tán (sau khi đã sử dụng ediff emacs '(quá nhiều tính năng, hữu ích trong những năm 90)> vimdiff (phức tạp plugins keystrokes)> p4merge> araxis (proprietry)> meld (quá chậm), tkdiff (only cvs)> kdiff3 (good , tốt regex bỏ qua các tính năng)> winmerge (tốt)> khuếch tán (nhanh, di động, hoạt động như mong đợi)) lần đầu tiên tôi đã cố gắng khuếch tán. 13 feb. 182018-02-13 02:41:07


-1

gitx http://gitx.frim.nl/

Một số lỗi khi làm việc với cam kết bộ lớn nhưng tuyệt vời cho phép bạn duyệt qua những thay đổi và chọn thay đổi khác nhau đến giai đoạn và sau đó cam kết.

  0

gitx chỉ khác, phải không? 16 jan. 102010-01-16 01:14:05

+4

Không có sẵn theo Ubuntu 13 sep. 102010-09-13 14:03:21


19

Bạn có thể thử P4Merge.

Trực quan hóa sự khác biệt giữa các phiên bản tệp với P4Merge. Giải quyết các xung đột do phát triển song song hoặc đồng thời thông qua mã hóa màu.

Các tính năng bao gồm:

  • Highlight và chỉnh sửa văn bản khác biệt tập tin
  • Chọn để bao gồm hoặc bỏ qua phần cuối dòng hoặc không gian trắng
  • Nhận ước dòng kết thúc cho Windows (CRLF), Mac (CR) và Unix (LF)
  • Sử dụng tham số dòng lệnh và khởi chạy từ các ứng dụng không phải của Perforce
  • Hiển thị số dòng khi so sánh và các tập tin sáp nhập
  • Loại trừ các tập tin được sửa đổi, độc đáo, hoặc không thay đổi
  • file Lọc theo tên hoặc gia hạn
  • tổ chức tài sản quen thuộc hệ thống phân cấp tập tin/thư mục sửa đổi
  • Hãy so sánh JPEG, GIF, TIFF, BMP, và các định dạng tập tin khác
  • Mở rộng sử dụng API Qt
  • hình ảnh Overlay hoặc hiển thị side-by-side
  • khác biệt nổi bật về hình ảnh che
  0

tốt nhất tôi đã thấy cho đến nay. dễ dàng giải quyết xung đột bằng cách chọn thay đổi từ danh sách chế độ xem ba chiều 29 aug. 152015-08-29 10:11:36

  0

Liên kết mới: https://www.perforce.com/downloads/helix#product-10 30 nov. 152015-11-30 15:58:14

  0

Sửa liên kết https://www.perforce.com/ Tải xuống/helix # clients 23 mar. 172017-03-23 10:56:49


77

Bạn có thể định cấu hình công cụ hợp nhất của riêng mình để sử dụng với "git mergetool".

Ví dụ:

git config --global merge.tool p4merge 
    git config --global mergetool.p4merge.cmd p4merge '$BASE $LOCAL $REMOTE $MERGED' 
    git config --global mergetool.p4merge.trustExitCode false 

Và trong khi bạn đang ở đó, bạn cũng có thể thiết lập nó như difftool của bạn cho "git difftool":

git config --global diff.tool p4merge 
    git config --global difftool.p4merge.cmd p4merge '$LOCAL $REMOTE' 

Lưu ý rằng trong Unix/Linux bạn don' t muốn $BASE để được phân tích cú pháp dưới dạng biến do trình bao của bạn - nó sẽ thực sự xuất hiện trong tệp ~/.gitconfig của bạn để làm việc này.

+1

P4Merge làm điều đó cho tôi. 16 jun. 102010-06-16 07:42:08

+8

Lưu ý rằng vì p4merge là (bây giờ) là một trong những trình hỗ trợ git chính thức được hỗ trợ, không cần thiết phải bỏ qua công cụ *. * .cmd nữa. 03 may. 112011-05-03 15:52:46

+1

Đảm bảo bạn đang sử dụng báo giá chính xác: http://stackoverflow.com/a/1217994/3543437 21 mar. 162016-03-21 23:58:22


11

Araxis Merge http://www.araxis.com/ Tôi đang sử dụng nó trên Mac OS X nhưng tôi đã sử dụng nó trên cửa sổ ... nó không miễn phí ... nhưng nó có một số tính năng đẹp ... đẹp hơn trên cửa sổ mặc dù.


1

Bạn có thể cài đặt ECMerge diff/merge tool trên Linux, Mac hoặc Windows của mình. Nó được cấu hình sẵn trong Git, vì vậy chỉ cần sử dụng git mergetool sẽ thực hiện công việc.


57

Beyond Compare 3, yêu thích của tôi, có chức năng merge trong Phiên bản Pro. Điều tốt với việc hợp nhất của nó là nó cho phép bạn xem tất cả 4 dạng xem: cơ sở, trái, phải và kết quả được hợp nhất. Nó hơi kém trực quan hơn P4V nhưng cách hơn WinDiff. Nó integrates with many source control và hoạt động trên Windows/Linux. Nó có nhiều tính năng như quy tắc nâng cao, ấn bản, căn chỉnh thủ công ...

The Perforce Visual Client (P4V) là công cụ miễn phí cung cấp một giao diện rõ ràng nhất để hợp nhất (xem some screenshots). Hoạt động trên tất cả các nền tảng chính.Sự thất vọng chính của tôi với công cụ đó là loại giao diện "chỉ đọc" "". Bạn không thể chỉnh sửa thủ công các tệp và bạn không thể căn chỉnh theo cách thủ công.

PS: P4Merge được bao gồm trong P4V. Perforce cố gắng để làm cho nó một chút khó khăn để có được công cụ của họ mà không có khách hàng của họ.

SourceGear Diff/Merge có thể là lựa chọn công cụ miễn phí thứ hai của tôi. Kiểm tra xem hợp nhất có phải là screens-shot và bạn sẽ thấy ít nhất 3 chế độ xem đó.


Meld là một công cụ miễn phí mới hơn mà tôi muốn SourceGear Diff/Merge: Bây giờ nó cũng làm việc trên hầu hết các nền tảng (Windows/Linux/Mac) với lợi thế riêng biệt của natively hỗ trợ một số kiểm soát nguồn như Git. Vì vậy, bạn có thể có một số khác biệt lịch sử trên tất cả các tệp đơn giản hơn nhiều. Chế độ xem hợp nhất (xem screenshot) chỉ có 3 panes, giống như SourceGear Diff/Merge. Điều này làm cho việc hợp nhất hơi khó hơn trong các trường hợp phức tạp.

PS: Nếu một công cụ một ngày hỗ trợ 5 lượt xem sáp nhập, điều này thực sự tuyệt vời, bởi vì nếu bạn chọn cam kết trong Git bạn thực sự không có một cơ sở nhưng hai. Hai cơ sở, hai thay đổi và một kết quả hợp nhất.

+6

Perforce Merge thật tuyệt vời. Nó có công cụ hợp nhất 4 ngăn, điều này thực sự hữu ích: Bạn, của họ, Cơ sở chung, Mới 24 may. 112011-05-24 00:17:03

+2

P4 cũng được [sử dụng bởi Google] (http://www.quora.com/What-version-control-system-does- Google-sử dụng và tại sao). 02 aug. 112011-08-02 08:03:16

+3

Bạn có thể tùy chỉnh cài đặt chỉ P4Merge mà không có phần còn lại của lực lượng. 10 may. 122012-05-10 22:19:44

+4

Phiên bản mới nhất của p4merge không có giao diện "chỉ đọc". Bạn có thể chỉnh sửa tệp đã hợp nhất trong ngăn bên dưới. 21 nov. 122012-11-21 01:13:41

  0

Đây là một câu trả lời và thảo luận thực sự tuyệt vời. Cảm ơn bạn đã chia sẻ! 17 mar. 152015-03-17 22:04:39


20

vimdiff

Một khi bạn đã học được vim (và IMHO bạn nên), vimdiff chỉ là một đẹp hơn chút khái niệm trực giao để học hỏi. Để nhận trợ giúp trực tuyến trong vim:

:help vimdiff 

Nếu bạn bị kẹt trong thời gian tối tăm sử dụng chuột và các tệp bạn đang hợp nhất không lớn, tôi khuyên bạn nên meld.

  0

<3 vimdiff, tôi không thể tìm ra cách thuyết phục svn cho phép tôi sử dụng nó như một công cụ 'hợp nhất'. 20 jan. 112011-01-20 18:00:16

  0

gvimdiff cũng hoạt động tốt cho mục đích này. 21 jul. 112011-07-21 11:19:50

+1

Sử dụng plugin Fugitive giúp dễ dàng hơn! http://vimcasts.org/episodes/fugitive-vim-resolving-merge-conflicts-with-vimdiff/ 20 jan. 152015-01-20 09:21:00


5

IntelliJ IDEA có một tinh vi merge conflict resolution tool với cây đũa Giải quyết kỳ diệu, mà rất nhiều đơn giản hoá việc sáp nhập:

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


0

Nếu bạn sử dụng visual studio, Đội Explorer được xây dựng trong công cụ là một rất đẹp công cụ để giải quyết xung đột hợp nhất git.


0

Vì vậy, cho git merge, bạn có thể thử:

  • DiffMerge để so sánh trực quan và hợp nhất các tập tin trên Windows, OS X và Linux.

    DiffMerge

  • Meld, là một diff thị giác và hợp nhất các công cụ.

    Meld is a visual diff and merge tool

  • KDiff3, một diff và chương trình hợp nhất), trong đó so sánh hoặc kết hợp 2 hoặc 3 văn bản đầu vào file/dirs.
  • opendiff (một phần của Công cụ Xcode trên macOS), tiện ích dòng lệnh khởi chạy ứng dụng FileMerge từ Thiết bị đầu cuối để so sánh các tệp hoặc thư mục đồ họa, bao gồm merging.

1

Tôi đã thử rất nhiều công cụ được đề cập ở đây và không có công cụ nào trong số chúng hoàn toàn là những gì tôi đang tìm kiếm.

Cá nhân, tôi đã tìm thấy Atom là một công cụ tuyệt vời để hình dung sự khác biệt và giải quyết xung đột/hợp nhất.

Đối với hợp nhất, không có ba chế độ xem nhưng tất cả được kết hợp thành một chế độ có đánh dấu màu cho từng phiên bản. Bạn có thể chỉnh sửa mã trực tiếp hoặc có các nút để sử dụng bất kỳ phiên bản nào của đoạn mã bạn muốn.

Tôi thậm chí không sử dụng nó làm trình soạn thảo hoặc IDE nữa, chỉ để làm việc với git. Giao diện người dùng sạch và rất thẳng về phía trước, cộng với giao diện người dùng có thể tùy chỉnh cao.

  • Bạn có thể bắt đầu nó từ dòng lệnh và vượt qua trong một tập tin duy nhất bạn muốn mở cửa cho, hoặc thêm thư mục dự án của bạn (git repo).

    • Tôi cũng khuyên bạn nên project-manager là cách rất thuận tiện để điều hướng giữa các dự án mà không làm đầy chế độ xem dạng cây của bạn.
  • Vấn đề duy nhất tôi có là làm mới - khi làm việc với các kho lưu trữ lớn, nguyên tử có thể chậm cập nhật các thay đổi bạn thực hiện bên ngoài. Tôi luôn luôn đóng nó khi tôi hoàn thành, và sau đó mở lại khi tôi muốn xem thay đổi của tôi/cam kết một lần nữa. Bạn cũng có thể tải lại cửa sổ bằng ctrl + shift + f5, chỉ mất một giây.

Và tất nhiên là hoàn toàn miễn phí.


0

tôi sử dụng công cụ khác nhau để kết hợp và so sánh:

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

Fist có thể được gọi bởi:

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

Thứ hai được gọi là khi bạn sử dụng git mergetool.