Git için en iyi görsel birleştirme aracı nedir? [kapalı]


599

Git'te bir birleştirmeyi görüntülemek ve düzenlemek için en iyi araç hangisidir? Ayrı panellerde "benim", "onların" ve "ata" ve dördüncü "çıktı" paneli ile 3 yönlü birleştirme görünümü elde etmek istiyorum.

Ayrıca, adı geçen aracı çağırmak için talimatlar harika olurdu. (Hala kdiff3'ü bana hata vermeyecek şekilde nasıl başlatacağımı bilmiyorum.)

İşletim sistemim Ubuntu.


15
"Ama şimdi izin verilmiyor" evet, bu yüzden bugünlerde yığın akışından nefret ediyorum. Bu sorular olmadan çok kuru ve sıkıcı.
István Ujj-Mészáros

17
Bu tür sorulara izin verilen bir stackexchange sitesi var mı? Değilse, olmalı ..
fzzylogic 07

16
Bu tür sorulara izin verilen yeni bir Yığın Taşması zamanı gelmiş gibi görünüyor. Açıkça belirtildiği gibi, bu tür sorular birçok insan için değerlidir ve bunları kapatmak aptalcadır. Sanırım bürokrasi ile tahtaya bindin. Bu konuda bir anket yapmaya ve "müşterilerinizin" ne istediğini görmeye ne
dersiniz


6
Sorun: softwarerecs işe yaramaz çünkü uzmanlar burada değil, burada.
reinierpost

Yanıtlar:


337

Meld ücretsiz, açık kaynaklı ve çapraz platformlu (UNIX / Linux, OSX, Windows) bir fark / birleştirme aracıdır.

Nasıl yükleyeceğiniz aşağıda açıklanmıştır:


53
orijinal yazarın kullandığı işletim sistemini kimin umurunda ?, soru, onu arayan herkesi ilgilendirecek kadar geneldir. Ve 3 yönlü fark, test ile 4 bölme gördüğünüzde; birleştirme tabanı / yerel / uzak / sonuç
Evgeny

16
meldkarmaşık diffs ile sıkıcıdır, gibi seçenekleri seçebilmek chose b for all unresolved conflicts, her iri parça için doğru oku manuel olarak tıklamaktan çok daha iyidir meld. Ayrıca, girdi dosyalarını yerinde düzenlemek yerine belirli bir çıktı dosyasıyla birleştirmek, başarısız sinirlerin yedeklenmesi için paha biçilmezdir.
Mark Booth

3
@naxa Meld şimdi bir Windows yükleyicisine sahip: code.google.com/p/meld-installer
Roman

6
kdiff3 4 görünüm görmenizi sağlar, meld sadece 3 görüntülemeye izin verir. Meld gerçek bir birleştirme aracı değildir, temel sürüm görünümünü göstermediğinden farklı bir araçtır.
Akira Yamamoto

4
Meld özellikle birleşmeler için korkunç. "Birbiriyle çelişmeyen değişiklikleri otomatik olarak aktarma" seçeneği yoktur, bu da her birleşmeyi çok acı verici hale getirir.
Cerin,

91

" git mergetool" İle kullanılacak kendi birleştirme aracınızı yapılandırabilirsiniz .

Misal:

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

Siz de işinizdeyken, " git difftool" için diftoolunuz olarak da ayarlayabilirsiniz :

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

Unix / Linux'ta $BASEkabuğunuz tarafından bir değişken olarak ayrıştırılmasını istemediğinizi unutmayın - bunun çalışması için aslında ~ / .gitconfig dosyanızda görünmesi gerekir.


10
P4merge (şimdi) resmi olarak desteklenen git mergetools'tan biri olduğu için, araçla muck yapılması gerekmediğini unutmayın . artık .cmd değişkeni.
Matt Ball

2
Doğru teklifi kullandığınızdan emin olun: stackoverflow.com/a/1217994/3543437
kayleeFrye_onDeck

64

Benim favorim olan Compare 3'ün ötesinde , Pro sürümünde bir birleştirme işlevi vardır. Birleştirmesi ile iyi olan şey, 4 görünümün tümünü görmenize izin vermesidir: taban, sol, sağ ve birleştirilmiş sonuç. P4V'den biraz daha az görsel,ancak WinDiff'den çok daha fazla. Bu birçok kaynak kontrolü ile entegre Windows / Linux üzerinde ve eserleri. Gelişmiş kurallar, sürümler, manuel hizalama gibi birçok özelliğe sahiptir.

Perforce Visual Client ( P4V ) , birleştirme için en açık arabirimden birini sağlayan ücretsiz bir araçtır ( bazı ekran görüntülerine bakın). Tüm büyük platformlarda çalışır. Bu araçla ilgili en büyük hayal kırıklığım onun tür "salt okunur" arayüzü . Dosyaları manuel olarak düzenleyemez ve manuel olarak hizalayamazsınız.

PS: P4Merge, P4V'ye dahildir. Perforce, müşterileri olmadan araçlarını almayı biraz zorlaştırmaya çalışır.

SourceGear Fark / Birleştirme ikinci ücretsiz araç seçimim olabilir. Birleştirme ekran görüntüsünü kontrol edin ve en az 3 kez görüntülendiğini göreceksiniz.


Meld , SourceGear Diff / Merge'i tercih etmeyi tercih ettiğim daha yeni bir ücretsiz araçtır: Artık Git gibi bazı kaynak kontrollerini doğal olarak desteklemenin avantajı ile çoğu platformda (Windows / Linux / Mac) çalışıyor. Böylece bazı geçmiş tüm dosyalarda çok daha basit farklı olabilir. Birleştirme görünümünde ( ekran görüntüsüne bakın) tıpkı SourceGear Fark / Birleştirme gibi yalnızca 3 bölme bulunur. Bu, karmaşık durumlarda birleştirmeyi biraz daha zorlaştırır.

Not: Bir araç bir gün 5 görüntülemeyi birleştirmeyi destekliyorsa , bu gerçekten harika olurdu, çünkü Git'te kiraz seçimini taahhüt ederseniz gerçekten bir tabana değil iki tabana sahip olursunuz. İki taban, iki değişiklik ve bir sonuç birleşti.


7
Performans Birleştirme harika. Gerçekten yardımcı olan 4 bölmeli birleştirme aracı vardır: Sevgiler, Onlarınki, Ortak Üs, Yeni
Gal


5
Performansın geri kalanı olmadan yalnızca P4Merge'i özel olarak yükleyebilirsiniz.
Dirk Bester

6
En son p4merge sürümü "salt okunur" arayüze sahip değildir. Birleştirilen dosyayı alt bölmede düzenleyebilirsiniz.
Ian Ni-Lewis

1
Bu gerçekten harika bir cevap ve tartışma. Paylaşım için teşekkürler!
Mark Good

44

Kdiff3 hakkında iyi şeyler duyuyorum.


4
+1: kdiff3, meld'den çok daha üstündür ve git tarafından yerel olarak desteklenir.
Mark Booth

3
kdiff3çok daha fazla özelliğe sahiptir ancak melddaha iyi kullanıcı arayüzüne sahiptir. Bence, meldsağlanan özelliklerin meldyeterli olduğu kolay birleştirme için daha iyidir . Denemeyi de unutmayın diffuse.
Mikko Rantalainen

kdiff3 4 görünüm görmenizi sağlar, meld sadece 3 görüntülemeye izin verir. Meld gerçek bir birleştirme aracı değildir, temel sürüm görünümünü göstermediğinden farklı bir araçtır.
Akira Yamamoto

43

En sevdiğim görsel birleştirme aracım SourceGear DiffMerge

  • Ücretsizdir.
  • Çapraz platform (Windows, OS X ve Linux).
  • Temiz görsel kullanıcı arayüzü
  • Beklediğiniz tüm fark özellikleri (Fark, Birleştir, Klasör Farkı).
  • Komut satırı arayüzü.
  • Kullanılabilir klavye kısayolları.

Kullanıcı arayüzü


3
git ile çalışacak şekilde nasıl yapılandırırsınız?
Ryan Lundy


2
Bana tanıttığınız için teşekkür ederim !! : D Bu araç temizdir ve kurulumu ve çalışması daha az zaman alır. Ben meld kurmaya çalışırken yarım saat harcıyorum. Ama bu 5 dakika içinde yaptım!
om39a

2
Not: diffmerge, 3 yönlü birleştirme özelliğine sahip görünmemektedir. Bu nedenle birkaç hafta denedikten sonra terk ediyorum
StormeHawke

Bu güzel bir araç ve aynı zamanda klasörleri karşılaştırabilirsiniz. Sorun biraz yavaş (MacBookPro 15 2014, MacOS Catalina)
emKaroly

33

vimdiff

Vim (ve IMHO gerekir) öğrendikten sonra, vimdiff öğrenmek için sadece bir güzel küçük dik kavramdır. Vim'de çevrimiçi yardım almak için:

:help vimdiff 

Bu soru nasıl kullanılacağını açıklar : Bir çatışmayı çözmek için vimdiff'i nasıl kullanabilirim?

resim açıklamasını buraya girin

Fare kullanımının karanlık çağlarında takılı kalırsanız ve birleştirdiğiniz dosyalar çok büyük değilse, meld'i öneririm.


<3 vimdiff, svn'yi bir 'birleştirme' aracı olarak kullanmama nasıl ikna edeceğimi bulamıyorum.
klokop

gvimdiff de bu amaç için iyi çalışıyor.
yeni123456

2
Fugitive eklentisini kullanmak çok daha kolay! vimcasts.org/episodes/…
Erik Westrup

Sadece yerel / baz ve baz / uzaktan arasındaki farkı açıkça görmenin bir yolu olsaydı.
Ciro Santilli 法轮功 冠状 病 18 事件 法轮功

24

P4Merge'yi deneyebilirsiniz .

P4Merge ile dosya sürümleri arasındaki farkları gözünüzde canlandırın. Renk kodlaması ile paralel veya eşzamanlı geliştirmeden kaynaklanan çakışmaları giderin.

Özellikler şunları içerir:

  • Metin dosyası farklılıklarını vurgulama ve düzenleme
  • Satır sonlarını veya beyaz boşlukları dahil etmeyi veya yoksaymayı seçin
  • Windows (CRLF), Mac (CR) ve Unix (LF) için satır sonu kurallarını tanıma
  • Komut satırı parametrelerini kullanma ve Performance olmayan uygulamalardan başlatma
  • Dosyaları karşılaştırırken ve birleştirirken satır numaralarını görüntüleme
  • Değiştirilmiş, benzersiz veya değiştirilmemiş dosyaları hariç tutun
  • Dosyaları ada veya uzantıya göre filtreleme
  • Değiştirilmiş varlıkları tanıdık dosya / klasör hiyerarşisinde düzenleme
  • JPEG, GIF, TIFF, BMP ve diğer dosya biçimlerini karşılaştırın
  • Qt API'sını kullanarak genişletme
  • Görüntüleri üst üste bindirme veya ekran yan yana
  • Üst üste bindirilmiş görüntülerdeki farklılıkları vurgulayın

şimdiye kadar gördüğüm en iyisi. Üç yönlü görünüm listesindeki değişikliği seçerek çatışmaları kolayca çözebilirsiniz
chovy



Bugün kullanmaya başladı ve oldukça sezgisel.
Kaynak

22

IntelliJ IDEA , Çözümü sihirli değnek ile birleştirme işlemini büyük ölçüde kolaylaştıran gelişmiş bir birleştirme çakışması çözümleme aracına sahiptir:

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


2
Fikir birleştirme aracı sadece mükemmel. Idea'nın topluluk sürümünde bile kullanılabilir, bu da gelişmiş birleştirme aracı olarak ücretsiz olarak kullanabileceğiniz anlamına gelir - yaptığım şey budur (çoğu durumda çalıştığım yerde VSCode kullanıyorum ve zor birleştirme vakaları için Idea kullanıyorum). VSCode da oldukça iyi bir iş çıkarıyor ve bazen İdea'dan bile daha iyi. ancak zor durumlar için 3 panelli düzeni şimdiye kadar gördüğüm en iyi araçtır
godblessstrawberry

Kaydırma çubuğunun 'yazlık' birlikte nasıl OLMADAN nefret ediyorum! Yaygın sevmemin ana nedeni!
anthony

16

Diffüz benim favorim ama tabii ki önyargılıyım. :-) Kullanımı çok kolaydır:

$ diffuse "mine" "output" "theirs"

Dağınık Python ile yazılmış küçük ve basit bir metin birleştirme aracıdır. Diffuse ile kodunuzdaki değişiklikleri kolayca birleştirebilir, düzenleyebilir ve inceleyebilirsiniz. Dağınık bir yazılımdır.


2
Dağınıklığı gerçekten seviyorum ve önyargılı değilim.
jturcotte

2
@Derrick Moser: diffuseÇok hoş görünüyor. Ben sadece şimdi denedim ve daha farklı yaptı kdiff3. Ama, onu kullanmaya çalışıyorum git mergetoolve yan yana 4 dosya (yerel, birleştirme sonucu, uzak, temel) açar ve ekranım bunun için yeterince geniş değil. Bir sürü yatay kaydırma yapmak zorunda kaldım. kdiff3 sadece yan yana 3 gösterir ve sonuç pencerenin alt yarısında gösterilir.
yairchu

diffuse, meld'e kıyasla bazı ek birleştirme seçeneklerine sahiptir (bunlardan birini seçmek yerine her iki sürüme de katılmaya izin verir).
Audrius Meskauskas

diffuse, pencerelerde, 2 klasörü karşılaştırmak için, CVS repo ile, Git repo ile, git merge çakışmalarını birleştirerek çalışır. Yaygın diff dosyaları tek bir pencerede sekmelerde açılır. Yaygın olarak geçtim (emacs 'ediff (90'larda çok fazla özellik, kullanışlı) kullandıktan sonra> vimdiff (karmaşık eklentiler tuş vuruşları)> p4merge> araxis (proprietry)> meld (çok yavaş), tkdiff (sadece cvs)> kdiff3 (iyi , iyi regex özellikleri yoksay)> winmerge (iyi)> dağınık (hızlı, taşınabilir, beklendiği gibi çalışır)) dağınık denedim ilk kez.
mosh

Diffüz'te GUI dili nasıl değiştirilir?
zach


9

Git mergetool tarafından kullanılan aracı git mergetool -t=<tool>veya tuşlarını kullanarak değiştirebilirsiniz --tool=<tool>. Varsayılanı değiştirmek için (vimdiff'ten) tuşunu kullanın git config merge.tool <tool>.



6

Yani git birleştirme için deneyebilirsiniz:

  • Windows, OS X ve Linux'ta dosyaları görsel olarak karşılaştırmak ve birleştirmek için DiffMerge .

    DiffMerge

  • Meld , görsel bir fark ve birleştirme aracıdır.

    Meld görsel bir fark ve birleştirme aracıdır

  • KDiff3 , bir diff ve merge programı).
  • opendiff(macOS'taki Xcode Tools'un bir parçası), birleştirme de dahil olmak üzere dosyaları veya dizinleri grafiksel olarak karşılaştırmak için FileMerge uygulamasını Terminal'den başlatan bir komut satırı yardımcı programıdır .

2
git config --global merge.tool opendiffbenim için en iyi çalıştı
James Matthew Mudgett

5

Burada bahsettiğim araçların çoğunu denedim ve hiçbiri aradığım şey değildi.

Şahsen, Atom'u farklılıkları ve çatışma çözme / birleştirme görselleştirmek için harika bir araç olarak buldum .

Birleştirmeye gelince, üç görünüm yoktur, ancak her sürüm için renkli vurgulama ile birleştirilir. Kodu doğrudan düzenleyebilirsiniz veya bu parçacığın istediğiniz sürümünü kullanmak için düğmeler vardır.

Artık bir editör ya da IDE olarak kullanmıyorum, sadece git ile çalışmak için. Temiz UI ve çok basit, ayrıca son derece özelleştirilebilir.

  • Komut satırından başlatabilir ve açmak istediğiniz tek bir dosyayı iletebilir veya proje klasörünüzü ekleyebilirsiniz (git repo).

  • Sahip olduğum tek sorun ferahlatıcı - büyük depolarla çalışırken atom dışında yaptığınız değişiklikleri güncellemek için yavaş olabilir. Bitirdiğimde her zaman kapatıyorum ve değişikliklerimi / taahhüdümü tekrar görüntülemek istediğimde tekrar açıyorum. Pencereyi yalnızca bir saniye süren ctrl + shift + f5 ile de yeniden yükleyebilirsiniz.

Ve elbette ücretsiz.


3

Birleştirme ve karşılaştırma için farklı araçlar kullanıyorum:

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

Yumruk tarafından çağrılabilir:

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

İkincisi, kullandığınızda çağrılır git mergetool.



2

Eğer kullanırsanız görsel stüdyo , Takım Explorer yerleşik aracı git birleştirme anlaşmazlıkları çözmek için çok güzel bir araçtır.


0

gitx http://gitx.frim.nl/

Büyük komut kümeleriyle çalışırken bazı hatalar var, ancak değişikliklere göz atmak ve sahneye ve ardından taahhütte farklı değişiklikler seçmek için harika.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.