Perlihatkan git diff HEAD ~ 1 file yang tidak tersentuh dalam commit terbaru

2

Di Git, untuk melihat perbedaan dengan commit sebelumnya saya menjalankan ini:

git diff HEAD~1

Untuk melihat komitmen terkait dengan satu file Saya akan menjalankan ini:

git log --oneline file

Tetapi jika saya menjalankan yang berikut ini dan file yang saya ingin referensi tidak diubah dalam commit terakhir, Git tidak menunjukkan apa-apa.

git diff HEAD~1 file

Bagaimana saya bisa melihat diff dengan cara yang mirip dengan HEAD tetapi untuk file tertentu jika file itu tidak dilakukan dalam referensi yang ditunjuk oleh HEAD?

juanpablo
sumber

Jawaban:

0

Anda harus merujuk SHA secara eksplisit jika Anda ingin melihat perbedaan dari file yang tidak diubah antara komit terakhir dan yang sebelum itu ( HEAD~1 ).

Jalankan log untuk melihat beberapa SHA yang ingin Anda lihat

git log --oneline <file>

Contoh output adalah sebagai berikut:

af46919 scraped - called local pizzeria instead
b09206c added sauce and bottle of dr pepper into list
ad90f90 knead dough and leave over night

Sekarang jika Anda ingin melihat perbedaan perubahan yang dibuat untuk file, Anda merujuknya melalui SHA kedua yang Anda lihat. Dalam hal ini kita memiliki ini dari contoh:

git diff b09206c <file>

Di atas adalah singkatan untuk

git diff b09206c HEAD <file>

Atau pikirkan seperti ini:

git diff <start-commit-SHA> <future-commit-SHA> <file>

Untuk menjalankannya sebagai satu perintah (mis. Untuk skrip) Anda dapat melakukan:

git log --oneline <file> |awk 'NR==2{print $1}'|xargs -I {} git diff {} <file> 
random
sumber