2009-07-10 31 views
24

Oldukça büyük bir 2 GIT şubesi var ve onları bir tür güzel UI'de yan yana açmak istiyorum. Farkı bana kolayca gösteren bir şey ve umarım farklılıkları tek tek birleştirebiliyorum. git diff ile çalışmak oldukça zordur.GIT diff GUI

+0

Bunu hiç kullanmadığımdan beri bir yorum olarak ekleyeceğim, ancak [git] [1] hile yapar mı? [1]: http://www.kernel.org/pub/software/scm/git/docs/gitk.html – seth

+0

whoops ... bunun için üzgünüm. düşünce yorumları da biçimlendi. – seth

+0

gitk ortogonaldir. – jrockway

cevap

23

Yanıt, git difftool'dir (en azından git sürüm 1.6.3 ve sonrası için). Lütfen sadece yapılandırılmış veya otomatik olarak bulunan grafiksel araç aracını çağırdığını unutmayın.

+3

Örnek: git difftool --tool = opendiff testbranch master – daniel

+1

Testbranch ve master arasında farklılıkları gösterecek "testbranch master" yerine, "testbranch" dalını gözden geçirirken genellikle bu şubedeki yalnızca taahhütleri görmek istersiniz. Bunun için "master ... testbranch" kullanın (üç periyot). Eğer testbutch mevcut HEAD ise, bu "master ..." olarak kısaltılabilir. –

+0

@JonathanHartley: Diff her zaman yaklaşık bitiş noktası değil, iki uç noktayla ilgilidir. . Örneğin, örn. 'gitk' (veya' git log --graph') 'master ... testbranch', her iki dalı ortak ataya gösterir. Diff için 'master ... testbranch' ortak atalarının ve (bence) 'testbranch' farkının kısaltmasıdır. –

1

Birleştirme işlemindeyseniz, git diff, ilk iki sütunun her bir çizginin bir tür birleşik birleştirme farklılığında gösterdiği gerçekten güzel bir sözdizimine sahiptir. Buradan çatışmaların herhangi bir editörle çözülmesi kolaydır.

Güzel renkler açık mı? İşte parçacık 'benim ~/.gitconfig: Neyse

 
[color] 
    diff = auto 
    branch = auto 
    status = auto 
    interactive = auto 

Örneğin KDiff3 bir göz almak. Birleştirme için kullanılacak aracı belirtebilirsiniz, ayrıntılar için git-mergetool belgelerine bakın.

+2

"git mergetool" koşusu doğru cevap, FWIW. – jrockway

23

Ben kompare kullanın:

git diff | kompare - 

kompare Git sınırlı değildir, aynı zamanda anladınız ...

svn diff | kompare - 
bzr diff | kompare - 
diff -Naur clean/ patched/ | kompare - 
kompare bug3.fix.diff 

yapabilirsiniz.

+0

Teşekkürler. Aynı zamanda 'meld' ile çalışır. – elpddev