Yanıtlar:
Bir yol sağlayın (bu durumda klasörüm) ve çalıştırın:
git diff myfolder/
git diff -- myfolderGit ile ilgili belirsizliği en aza indirmek için kullanmak istiyorum . Git diff (ve birçok git komutu) için genel gösterim, git diff [commit-ish] -- [path]commit-ish'in varsayılan olarak HEAD (şu anda bulunduğunuz yer) ve [path]git kök dizini için varsayılan olduğu, ancak mevcut dizininizle ilgili herhangi bir şey olabilir. Olmadan --, git ne demek istediğini tahmin edecek [commit-ish]ya [path]. Bazı durumlarda bu, git'in gösterimin 'belirsiz' olduğunu söylemesine neden olur. Eğer doğru hatırlıyorsam.
git diff master..develop myfolder/orijinal soruya yapılan yorumda dediği gibi, @ray ve bunu gören gelecekteki bireyler için, aralarında ayrım yapmaya çalıştığınız dalları dahil edebilirsiniz . Git durumu, aradığınız buysa size değişiklikleri gösterecektir.
Farklı dalları karşılaştırıyorsanız, --Git revizyonunu dosya sistemi yolundan ayırmak için kullanmanız gerekir . Örneğin, iki yerel şubeyle masterve bryan-working:
$ git diff master -- AFolderOfCode/ bryan-working -- AFolderOfCode/
Veya yerel bir şubeden uzak bir şubeye:
$ git diff master -- AFolderOfCode/ origin/master -- AFolderOfCode/
Bunun gibi şeyler için belgelere bakmayı alışkanlık haline getirmelisiniz. Çok kullanışlıdır ve becerilerinizi çok hızlı bir şekilde geliştirecektir. İşte yaptığınızda alakalı kısımgit help diff
git diff [options] [--no-index] [--] <path> <path>
İki <path>s, söz konusu dizinlere değiştirmeniz gerekenler.
Ekle ötesinde karşılaştır Git daki difftool olarak ve sıra diffdir için bir takma ad ekleyin:
git config --global alias.diffdir = "difftool --dir-diff --tool=bc3 --no-prompt"
Gitdiff'i şu şekilde alın:
git diffdir 4bc7ba80edf6 7f566710c7
Referans: Tüm dizinleri karşılaştırın w git difftool + Karşılaştırmanın Ötesinde
git config --global alias.diffdir = "difftool --dir-diff --tool=bc3 --no-prompt"Bunun yerine kullanın
--no-symlinksseçeneği, komutun okuyacağı şekilde eklemeniz gerekir.git difftool --dir-diff --no-symlinks
Sadece bir yol eklemekle kalmaz, aynı git diff --relativezamanda o klasöre göre sonuç almak için ekleyebilirsiniz .
git -C a/folder diff --relative
Ve Git 2.28 (Q3 2020) ile, " diff" ailesindeki komutlar " diff.relative" yapılandırma değişkenine saygı göstermeyi öğrendi .
Laurent Arnoud ( ) tarafından hazırlanan commit c28ded8'e (22 Mayıs 2020) bakın . ( Junio C Hamano ile birleştirildi - - in commit e34df9a , 02 Haz 2020)spk
gitster
diff: yapılandırma seçeneği eklerelativeİmza: Laurent Arnoud
Kabul eden: Đoàn Trần Công Danh
diff.relativeBoole seçenek grubutruegösterir, sadece belirtilen mevcut dizin / değerindeki değişiminpathbir bağımsız değişkenrelativeyukarıda belirtilen dizine göre seçeneği ve Şekil yol adlarının.
--no-relativeDaha önce geçersiz kılmayı öğretin--relativeGit-format-patch (1) seçenekleri dokümantasyonu
--relativeve--no-relative
diff.relative:'
true' Olarak ayarlanırsa , 'git diff' dizin dışındaki değişiklikleri göstermez ve mevcut dizine göre yol adlarını gösterir.
Alt dizinleri dışarıda bırakmak istiyorsanız, kullanabilirsiniz
git diff <ref1>..<ref2> -- $(git diff <ref1>..<ref2> --name-only | grep -v /)
Farkı dizini için fark aracı olarak Ötesi Karşılaştırmayı kullanmak için, aşağıdaki gibi sembolik bağları takip etmeyi etkinleştirmeyi unutmayın:
Bir de Klasör Görünümü karşılaştır → Kuralları (Hakem Simgesi):
Ardından, simgesel bağlantıları takip et ve oturum varsayılanlarını güncelle seçeneğini etkinleştirin:
VEYA,
takma adı şu şekilde ayarlayın:
git config --global alias.diffdir "difftool --dir-diff --tool=bc3 --no-prompt --no-symlinks"
Her iki durumda da, geçerli çalışma ağacına atıfta bulunan tarafta (sol veya sağ) yapılan tüm düzenlemelerin korunduğunu unutmayın.
git diff master..yourbranch path/to/folder