Pertanyaan Bagaimana cara melihat perubahan dalam Git commit?


Ketika saya melakukannya git diff COMMIT Saya melihat perubahan antara komit dan HEAD (sejauh yang saya tahu), tetapi saya ingin melihat perubahan yang dibuat oleh komitmen tunggal itu.

Saya belum menemukan opsi yang jelas pada diff / log yang akan memberi saya output itu.


989
2017-07-10 06:22


asal


Jawaban:


Untuk melihat diff untuk tertentu COMMIT hash:

git diff COMMIT~ COMMIT akan menunjukkan perbedaan antara itu COMMITnenek moyang dan COMMIT. Lihat halaman manual untuk git diff untuk detail tentang perintah dan gitrevisi tentang ~ notasi dan teman-temannya.

Kalau tidak, git show COMMIT akan melakukan sesuatu yang sangat mirip. (Data commit, termasuk diff - tetapi tidak untuk menggabungkan commit.) Lihat git menunjukkan manpage.


1277
2017-07-10 06:23



Seperti yang disebutkan dalam "Singkatan untuk diff git commit dengan induknya?", Anda juga bisa menggunakan git diff dengan:

git diff COMMIT^!

atau

git diff-tree -p COMMIT

Dengan git show, Anda perlu (agar fokus pada diff sendiri) untuk melakukan:

git show --color --pretty=format:%b $COMMIT

Itu COMMIT parameter adalah a komit-ish:

SEBUAH melakukan objek atau sebuah obyek yang dapat secara rekursif dirujuk ke objek komit. Berikut ini adalah semua commit-ishes: objek commit, a objek tag yang menunjuk ke objek komit, objek tag yang mengarah ke objek tag yang mengarah ke objek commit, dll.

Lihat gitrevision "MEMUNGKINKAN REVISI" untuk referensi komitmen-ish.
Lihat juga "Apa arti tree-ish di Git?".


371
2017-07-10 06:31



Anda juga dapat mencoba cara mudah ini:

git show <COMMIT>

184
2018-06-15 09:02



git show menunjukkan perubahan yang dilakukan pada commit terbaru.

Setara dengan git show HEAD.

git show HEAD~1 Membawa Anda kembali 1 commit.


48
2017-09-16 01:50



Pertama, dapatkan ID komit menggunakan,

git log #to list all

Atau

git log -p -1 #last one commit id

Salin id komit.

Sekarang kami menggunakan dua metode untuk membuat daftar perubahan dari komitmen tertentu,

Metode 1:

git diff commit_id^! #commit id something like this 1c6a6000asad012

Metode 2:

git show commit_id
For example: git show 1c6a600a

21
2017-07-19 05:48



Dari halaman manual untuk git-diff (1):

git diff [options] [<commit>] [--] [<path>…]
git diff [options] --cached [<commit>] [--] [<path>…]
git diff [options] <commit> <commit> [--] [<path>…]
git diff [options] <blob> <blob>
git diff [options] [--no-index] [--] <path> <path>

Gunakan yang ketiga di tengah:

git diff [options] <parent-commit> <commit>

Juga dari halaman manual yang sama, di bagian bawah, di Contoh bagian:

$ git diff HEAD^ HEAD      <3>

Bandingkan versi sebelum commit terakhir dan commit terakhir.

Diakui itu kata-kata sedikit membingungkan, itu akan menjadi kurang membingungkan

Bandingkan komitmen terakhir dengan commit sebelumnya.


20
2017-07-10 07:20



Berikut ini tampaknya melakukan pekerjaan; Saya menggunakannya untuk menunjukkan apa yang telah dibawa oleh gabungan.

git whatchanged -m -n 1 -p <SHA-1 hash of merge commit>

17
2017-10-14 17:16



Kemungkinan lain:

git log -p COMMIT -1


9
2018-02-16 14:49



git difftool COMMIT^ <commit hash>

juga mungkin jika Anda telah mengkonfigurasi difftool Anda.

Lihat di sini caranya konfigurasikan difftool Atau halaman manual sini

Selain itu Anda bisa menggunakannya git diff-tree --no-commit-id --name-only -r <commit hash> untuk melihat file mana yang telah diubah / dikomit dalam memberi hash commit


8
2018-03-24 12:49