Apakah ada cara untuk membatasi git diff
file yang diubah?
Saya ingin melihat perbedaan antara dua komit, tetapi kecualikan jalur yang tidak ada di satu atau lainnya (penambahan / penghapusan). Perl one-liner berikut menggambarkan sebagian besar dari apa yang saya inginkan:
git diff master.. | perl -lnwe 'print unless /^(new|deleted) file/../^diff/ and not /^diff/'
Tapi itu meninggalkan diff --git a/path b/path
baris untuk file yang baru atau dihapus. Ditambah akan jauh lebih baik jika saya tidak perlu mengurai (juga gagal jika ada bingkah yang berisi sesuatu yang cocok dengan / ^ diff /, misalnya).
Alternatif lain yang saya coba adalah:
git diff --name-status (args) | perl -lnwe 'print if s/^M\s+//' | xargs git diff (args) --
Outputnya lebih baik, tapi masih terasa seperti hackish.
man git diff
"memiliki tipenya (yaitu file biasa, symlink, submodule, ...) diubah (T),"R
(file berganti nama) Anda perlu menggunakan-M
diperluas itu dikenal sebagai--find-renames
Seperti yang diingatkan oleh Git 2.10 (Q3 2016), ada cara yang lebih mudah untuk "menampilkan semuanya kecuali file yang ditambahkan / dihapus". (sebenarnya sejak Git 1.8.5, Juli 2013)
Lihat commit 16726cf (14 Jul 2016) oleh Junio C Hamano (
gitster
) .(Digabung oleh Junio C Hamano -
gitster
- di commit 2f8c654 , 08 Agustus 2016)Jadi , dokumentasi
diff-options
sekarang (akhirnya) meliputi:sumber
Anda dapat menggunakan tanda --diff-filter untuk melakukan ini dengan tepat.
git diff --diff-filter=CMRTUXB master..
harus menunjukkan semuanya kecuali file yang ditambahkan / dihapus.sumber
Untuk melihat semua file yang dimodifikasi dan baru yang dapat Anda gunakan
PREV_VERSION
adalah hash dari komit pertama Anda.Untuk mendapatkan ekspor sebagai zip, Anda dapat menggunakan kode ini
Catatan:
.gitignore
tidak dalamexport.zip
sumber
Saya telah menggunakan Notepad ++ (Windows), dan ekspresi reguler ini untuk menyaring jenis ekstensi dan jalur tertentu dari file diff.
Satu-satunya masalah adalah, ketika itu mencapai akhir. Anda harus 'ctrl + home' dan pergi lagi sampai tidak menemukan apa-apa.
(Ganti apa yang ditemukan dengan 'Indeks')
sumber