2010-01-21 15 views
25

Git difftool komutunu, değiştirilen dosyalar ile aşamalandırma/kontrol edilen dosyalar arasında bir dizini açmak üzere açmak mümkün mü?git difftool?

İdeal olarak, eğer 2 dosya değiştiyse, bunlar gösterilen sadece 2 olur, ancak bir dizin içinde karşılaştırır.

Tüm dosya diferansiyellerini paralel olarak vermek için gitme ile ilgili mesajları okudum, bu yüzden BeyondCompare gibi araçların tümü the diffs in tabs'a sahiptir, ancak bundan memnun değilim!

Değiştirilen dosyaların bir kopyası dosyaları bir klasöre yerleştirme/işaretlemeden geçici bir klasöre çekebilir ve ardından bunu açabilir. Tek seçenek bu mu?

+0

ben size yardımcı olabilir benim (benzer) soru üzerine aldık cevaplar:

Muhtemelen tüm normal diff seçeneklerini kullanabilirsiniz (ben ... yüzdeler ne anlama geldiğini bilmiyorum) : http://stackoverflow.com/questions/4248830/directory-comparison-of-git-branches –

cevap

37

Güncellemesi Haziran 2012 (2 ve yarım yıl sonra):

Bu (yerine dosyaya-by-dosyanın dizinleri karşılaştırmak) yakında hazır gibi görünüyor:
[ANNOUNCE] Git 1.7.11.rc1 bakınız:

" git difftool "yapabilen harici fark araçları oluşturmak için" --dir-diff "seçeneğini, iki geçici dizini karşılaştırarak harici bir örneği çalıştırmak yerine iki geçici dizini, Bir dosya çifti başına bir kez. geçici klasöre dosya teslim evreleme değiştirilmiş dosyaları/bir kopyasını çekebilirdi

Bir

Bkz "Patch difftool: teach difftool to handle directory diffs"


Orijinal cevap (Ocak 2010) ve sonra açın. Tek seçenek bu mu?

Temelde evet:

Sen difftool komut olacaktır:

  • bir fark aracı daha sonra
  • çağrı diff
    • olarak kendini tanımlayan 2 Geçici dizinleri oluşturmak diff
    • için dosyayı ara bu modda
    • , aynı senaryo, her dosyalar için, ancak o zaman gidip iki geçici dizinlerde (beyondCompare veya WinMerge gibi) fark araçları çağrı iki geçici dizinleri
  • yılında fark için iki sürümü kopyalamak

this question'da bir ilk örneğiniz var.

+1

Neden 2 geçici dizinler? Değiştirilen dosyaları kontrol edilen giriş kaynağına karşı git kumbox'la karşılaştırmak en iyi çözüm olur mu? Bu nedenle, yalnızca kopyalanması gereken/geçici bir dosyaya dönüşen dosyaları kontrol edilen dosyaları mı? Ayrıca, bu, checkin dosyalarındaki değişiklikleri çalışma sanal alanına geri birleştirmek isteyebileceği için en iyisidir. Bu tür destek standartlarını git konusunda herhangi bir iddiaya sahip olan var mı? –

+0

Daha fazla bilgi için bu cevabı bakın: http://stackoverflow.com/a/10879804/6309 – VonC

2

Hep --dirstat=files kullanın:

[email protected]:virenze$ git diff --dirstat=files 
    4.1% modules/custom/virenze_conversations/ 
    7.0% modules/custom/virenze_crs/ 
    8.3% modules/custom/ 

Ben dirs virenze_conversations ve custom yılında virenze_crs kaldırdık anlamına gelir. --cached, şube adı vb