Terkadang ketika saya akan membuat komit, saya tidak dapat mengingat dengan tepat apa yang telah berubah sejak komit terakhir. Bagaimana saya bisa melihat perbedaan dari status kode saat ini dan komit terakhir?
93
Jika Anda belum menambahkan file apa pun ke indeks (dengan git add
), cukup lakukan
git diff
Ini akan menunjukkan perbedaan antara pohon kerja dan indeks Anda.
Jika Anda telah menambahkan file ke indeks, Anda perlu melakukan ini untuk menunjukkan perbedaan antara indeks dan komit terakhir (HEAD).
git diff --cached
Terakhir, jika Anda ingin melihat perubahan yang dibuat pada pohon kerja dibandingkan dengan commit terbaru ( HEAD
) Anda bisa (seperti yang ditunjukkan Carlos)
git diff HEAD
Perubahan tersebut merupakan kombinasi dari git diff
dan git diff --cached
.
git diff
membandingkan worktree terhadap indeks, bukan HEAD.git diff
status indeks dan komit sebelumnya dalam satu pesan berbeda?git diff --cached HEAD^
:)Jika Anda baru saja membuat komit, atau ingin melihat apa yang telah berubah dalam komit terakhir dibandingkan dengan keadaan saat ini (dengan asumsi Anda memiliki pohon kerja yang bersih) Anda dapat menggunakan:
Ini akan membandingkan HEAD dengan commit sebelumnya. Bisa juga dilakukan
untuk membandingkan dengan state of play 2 commit yang lalu. Untuk melihat perbedaan antara keadaan saat ini dan komit tertentu, cukup lakukan:
Di mana
b6af6qc
contoh hash komit.sumber
HEAD^
adalah komit sebelum komit terbaru.Anda meminta git untuk membedakan komit saat ini / terakhir, yang memiliki singkatan dari
HEAD
.Jadi
git diff HEAD
akan membandingkan status worktree saat ini dengan commit saat ini.sumber
ini juga menunjukkan perbedaan dan file apa yang telah diubah / dimodifikasi.
Menampilkan jalur yang memiliki perbedaan antara file indeks dan komit HEAD saat ini, jalur yang memiliki perbedaan antara pohon kerja dan file indeks, dan jalur di pohon kerja yang tidak dilacak oleh git (dan tidak diabaikan oleh gitignore (5) ). Yang pertama adalah apa yang akan Anda lakukan dengan menjalankan git commit; yang kedua dan ketiga adalah apa yang bisa Anda lakukan dengan menjalankan git add sebelum menjalankan git commit.
https://www.kernel.org/pub/software/scm/git/docs/git-status.html
sumber
Ini juga berhasil untuk saya:
Ini biasanya bekerja untuk sejarah linier. Ini bisa menjadi lebih rumit jika ada juga komit gabungan. Saya menyarankan Anda untuk melihat ke dalam dokumen ini untuk penjelasan yang bagus dan lengkap, terutama contoh ilustrasi pohon komit:
https://git-scm.com/docs/gitrevisions
sumber