Apakah ada opsi untuk membatasi git diff
ke satu set ekstensi file yang diberikan?
git
file-extension
vfclists
sumber
sumber
git diff -- *.{c,h,etc}
git diff master HEAD -- "*filename.txt"
juga berguna adalahgit diff master HEAD --name-only
''
) juga penting!git diff -- src/*.js
seharusnyagit diff -- 'src/*.js'
Untuk memasukkan file secara rekursif (termasuk direktori saat ini) ini berhasil bagi saya:
sumber
git diff -- '***.py' ':!.Trashes'
Gunakan globstar shell Anda (yang melakukan pencarian rekursif) 1 , 2 :
atau gunakan find:
Keduanya adalah nama-khusus dan bukti spasi putih. Meskipun Anda mungkin ingin memfilter untuk direktori yang memiliki ekstensi .py :)
1 Saya suka melakukan
git diff -- {.,**}/*.py
biasanya2 Ketika globstar diaktifkan,
git diff -- **/*.py
sudah termasuk./*.py
. Di manual Bash: 'Jika diikuti oleh a /, dua * yang berdekatan hanya akan cocok dengan direktori dan subdirektori.'sumber
Untuk pola file sederhana, ini tampaknya berfungsi:
Aman spasi putih, dan Anda juga dapat memiliki beberapa ekstensi:
sumber
Argumen baris perintah untuk ekstensi.
Sebagai alternatif, Anda dapat menyalurkan
find
kegit diff
:sumber
git diff *.py
dan tanpa judul berteriakSeperti yang diuji pada git versi 2.18.0, ekstensi file harus dikutip dengan tanda kutip ganda. Jika Anda ingin menemukan perbedaan terakhir antara repositori lokal Anda dan yang jauh, setelah menarik, Anda dapat menggunakan:
Sebagai contoh:
sumber
git diff master@{1} origin/master --name-only -- "*.cs"
Tidak ada satu pun jawaban di atas yang berfungsi untuk saya
git bash
di Windows. Saya tidak yakin apakah itu versi (saya menggunakan 1.8.4) atau Windows / bash; juga, dalam kasus saya, saya ingin membedakan dua cabang di mana setiap cabang memiliki file tambahan yang tidak ada di cabang lain (sehingga yang berbasis 'menemukan' lalai).Bagaimanapun ini bekerja untuk saya (dalam contoh saya, mencari perbedaan antara file python):
sumber
git diff
hanya akan menunjukkan perbedaan pada file yang tidak dipentaskan.Saya menemukan pertanyaan ini karena saya ingin mengecualikan
.info
file darigit diff
. Saya mencapai ini dengan mementaskannyagit add *.info
, yang mengurangi file yang tersisa.sumber
Saya berakhir dengan ini:
Ini menunjukkan perbedaan untuk komit yang ditentukan hanya jika nama file berisi kata 'test' (case-sensitive) dan tidak diakhiri dengan
.sql
, modifikasi pipeline yang diperlukan untuk case Anda.sumber