Jawaban:
Berikan jalur (folder saya dalam kasus ini) dan jalankan saja:
git diff myfolder/
git diff -- myfolderuntuk meminimalkan ambiguitas pada git. Notasi umum untuk git diff (dan banyak perintah git) adalah git diff [commit-ish] -- [path]tempat commit-ish default ke HEAD (di mana Anda berada sekarang) dan [path]default ke direktori root git, tetapi bisa apa saja yang berhubungan dengan direktori Anda saat ini. Tanpa --, git akan menebak apa yang Anda maksud, [commit-ish]atau [path]. Dalam beberapa kasus, hal ini menyebabkan git mengatakan bahwa notasi tersebut 'ambigu'. Jika saya ingat dengan benar.
git diff master..develop myfolder/bedakan seperti yang dikatakan @CrandellWS dalam komentar di pertanyaan awal. Status Git akan menunjukkan perubahan jika itu yang Anda cari.
Jika Anda membandingkan cabang yang berbeda, Anda perlu menggunakan --untuk memisahkan revisi Git dari jalur sistem file. Misalnya, dengan dua cabang lokal, masterdan bryan-working:
$ git diff master -- AFolderOfCode/ bryan-working -- AFolderOfCode/
Atau dari cabang lokal ke remote:
$ git diff master -- AFolderOfCode/ origin/master -- AFolderOfCode/
Anda harus membiasakan melihat dokumentasi untuk hal-hal seperti ini. Ini sangat berguna dan akan meningkatkan keterampilan Anda dengan sangat cepat. Inilah sedikit yang relevan saat Anda melakukannyagit help diff
git diff [options] [--no-index] [--] <path> <path>
Keduanya <path>adalah apa yang perlu Anda ubah ke direktori yang dimaksud.
Tambahkan Beyond Compare sebagai difftool Anda di Git dan tambahkan alias untuk diffdir sebagai:
git config --global alias.diffdir = "difftool --dir-diff --tool=bc3 --no-prompt"
Dapatkan gitdiff sebagai:
git diffdir 4bc7ba80edf6 7f566710c7
Referensi: Bandingkan seluruh direktori dengan difftool + Beyond Compare
git config --global alias.diffdir = "difftool --dir-diff --tool=bc3 --no-prompt"sebagai gantinya
--no-symlinksopsi sehingga perintah terbacagit difftool --dir-diff --no-symlinks
Tidak hanya Anda dapat menambahkan jalur, tetapi Anda dapat menambahkan git diff --relativeuntuk mendapatkan hasil yang sesuai dengan folder itu.
git -C a/folder diff --relative
Dan dengan Git 2.28 (Kuartal 3 2020), perintah dalam keluarga " diff" belajar untuk menghormati diff.relativevariabel konfigurasi " ".
Lihat commit c28ded8 (22 Mei 2020) oleh Laurent Arnoud ( spk) .
(Digabung oleh Junio C Hamano - gitster- dalam commit e34df9a , 02 Jun 2020)
diff: tambahkan opsi konfigurasirelativeDitandatangani oleh: Laurent Arnoud
Diakui oleh: Đoàn Trần Công DanhThe
diff.relativeboolean set pilihan untuktruemenunjukkan hanya perubahan dalam arus direktori / nilai yang ditentukan olehpathargumen darirelativepilihan dan menunjukkan nama path relatif ke direktori tersebut.Ajari
--no-relativeuntuk menimpa sebelumnya--relativeTambahkan untuk dokumentasi opsi git-format-patch (1)
--relativedan--no-relative
The Dokumentasi sekarang termasuk :
diff.relative:Jika disetel ke '
true', 'git diff' tidak menampilkan perubahan di luar direktori dan menunjukkan nama jalur relatif ke direktori saat ini.
Jika Anda ingin mengecualikan sub-direktori, Anda dapat menggunakan
git diff <ref1>..<ref2> -- $(git diff <ref1>..<ref2> --name-only | grep -v /)
Untuk menggunakan Beyond Compare sebagai difftool untuk direktori diff, ingat aktifkan tautan simbolik berikut seperti ini:
Dalam Folder Bandingkan Tampilan → Aturan (Ikon Wasit):
Dan kemudian, aktifkan ikuti tautan simbolis dan perbarui default sesi:
ATAU,
atur alias seperti ini:
git config --global alias.diffdir "difftool --dir-diff --tool=bc3 --no-prompt --no-symlinks"
Perhatikan bahwa dalam kedua kasus, setiap pengeditan yang dilakukan ke samping (kiri atau kanan) yang mengacu pada pohon kerja saat ini dipertahankan.
git diff master..yourbranch path/to/folder