Bagaimana cara melihat perubahan pada git commit?

Ketika saya melakukan git diff COMMIT saya melihat perubahan antara commit ini dan HEAD (sejauh yang saya tahu), tapi saya ingin melihat perubahan yang dilakukan oleh commit tunggal ini.

Saya tidak menemukan opsi diff / log yang jelas yang akan memberi saya kesimpulan seperti itu.

1114
10 июля '13 в 9:22 2013-07-10 09:22 laktak diatur pada 10 Juli '13 pada 9:22 2013-07-10 09:22
@ 17 balasan

Untuk melihat perbedaan hash COMMIT tertentu:

git diff COMMIT~ COMMIT akan menunjukkan kepada Anda perbedaan antara COMMIT leluhur ini dan COMMIT . Lihat halaman untuk diferensial git untuk informasi terperinci tentang tim dan gitrevision tentang notasi dan teman-temannya.

Atau, git show COMMIT akan melakukan sesuatu yang sangat mirip. (Data komit, termasuk diff - tetapi tidak untuk komit gabungan). Lihat halaman manual git show .

1439
10 июля '13 в 9:23 2013-07-10 09:23 jawabannya diberikan oleh Nevik Rehnel pada 10 Juli '13 pada 9:23 2013-07-10 09:23

Seperti yang dinyatakan dalam Singkatan untuk membatasi git dari induknya?, Anda juga dapat menggunakan git diff dengan:

 git diff COMMIT^! 

atau

 git diff-tree -p COMMIT 

Dengan git show, Anda perlu (untuk fokus pada perbedaan secara terpisah):

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

Parameter COMMIT - commit-ish :

Objek komit atau objek yang dapat direferensikan secara rekursif menjadi objek komit. Semua komit dicantumkan di bawah ini: objek komit, objek tag yang menunjuk ke objek komit, objek tag yang menunjuk ke objek tag yang menunjuk ke objek komit, dll.

Lihat gitrevision "REVISI TITIK untuk tautan ke komit.
Lihat Juga " Apa arti sebuah pohon di Git? ".

408
10 июля '13 в 9:31 2013-07-10 09:31 jawabannya diberikan oleh VonC 10 Juli, '13 pada jam 9:31 am 2013-07-10 09:31

Anda juga dapat mencoba cara mudah ini:

 git show <COMMIT> 
234
15 июня '16 в 12:02 2016-06-15 12:02 jawabannya diberikan Lakhan 15 Juni 16 pada jam 12:02 2016-06-15 12:02

git show menunjukkan perubahan yang dilakukan pada komit terakhir.

Setara dengan git show HEAD .

git show HEAD~1 membawamu kembali 1 commit.

56
16 сент. Jawabannya diberikan oleh Adam Salma pada 16 September 2016-09-16 04:50 '16 pada 4:50 2016-09-16 04:50

Pertama, dapatkan id perbaikan menggunakan,

 git log #to list all 

Atau

 git log -p -1 #last one commit id 

Salin pengidentifikasi perbaikan.

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

Metode 1:

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

Metode 2:

 git show commit_id For example: git show 1c6a600a 
26
19 июля '17 в 8:48 2017-07-19 08:48 Jawaban diberikan oleh Mohideen ibn Mohammed pada 19 Juli '17 pada 8:48 2017-07-19 08:48

Dari halaman bantuan 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 pada halaman manual yang sama di bawah ini di bagian Contoh :

 $ git diff HEAD^ HEAD <3> 

Bandingkan versi sebelum komit terakhir dan komit terakhir.

Diakui, ini agak membingungkan, itu akan kurang membingungkan karena

Bandingkan fiksasi terbaru dengan fiksasi di depannya.

23
10 июля '13 в 10:20 2013-07-10 10:20 jawabannya diberikan oleh user456814 10 Juli '13 pada 10:20 2013-07-10 10:20

Berikut ini tampaknya melakukan pekerjaan; Saya menggunakannya untuk menunjukkan apa yang telah digabungkan.

 git whatchanged -m -n 1 -p <SHA-1 hash of merge commit> 
19
14 окт. Jawaban diberikan oleh MichaelMoser pada 14 Oktober. 2014-10-14 20:16 '14 pukul 20:16 2014-10-14 20:16
 git show <commit_sha> 

Ini akan menunjukkan kepada Anda bahwa dalam komit ini. Saya pikir Anda bisa melakukan ini dengan hanya memberi ruang di antara kedua komitmen.

 git show <beginning_sha> <ending_sha> 

yang sangat berguna jika Anda sering memeriksanya kembali, karena log fungsi Anda semuanya akan berurutan.

16
22 авг. Jawabannya diberikan Iwnnay 22 Agustus. 2018-08-22 17:46 '18 pada 17:46 2018-08-22 17:46

Kemungkinan lain:

git log -p COMMIT -1

11
16 февр. Balas diberikan oleh John_West pada 16 Feb. 2016-02-16 17:49 16 di 17:49 2016-02-16 17:49
 git difftool COMMIT^ <commit hash> 

juga memungkinkan jika Anda telah mengkonfigurasi diffftool Anda.

Lihat di sini cara mengatur diffftool atau halaman referensi di sini.

Selain itu, Anda dapat menggunakan git diff-tree --no-commit-id --name-only -r <commit hash> untuk mencari tahu file mana yang telah diubah / dikomit ke hash dari perintah commit commit.

8
24 марта '14 в 15:49 2014-03-24 15:49 jawabannya diberikan oleh Chand Priyankara pada 24 Maret '14 pukul 15:49 2014-03-24 15:49

Anda dapat menggunakan git diff HEAD HEAD^1 untuk melihat perbedaannya dengan commit induk.

Jika Anda hanya ingin melihat daftar file, tambahkan --stat .

6
08 дек. Balas Irshu 08 Des 2015-12-08 07:17 '15 pada 7:17 2015-12-08 07:17

Untuk melihat pembuat dan waktu, gunakan komit komit git show COMMIT . Yang akan mengarah pada sesuatu seperti ini:

 commit 13414df70354678b1b9304ebe4b6d204810f867e Merge: a2a2894 3a1ba8f Author: You <you@you.com> Date: Fri Jul 24 17:46:42 2015 -0700 Merge remote-tracking branch 'origin/your-feature' 

Jika Anda ingin melihat file mana yang telah diubah, jalankan yang berikut dengan nilai-nilai dari baris git diff --stat a2a2894 3a1ba8f atas git diff --stat a2a2894 3a1ba8f .

Jika Anda ingin melihat diff yang sebenarnya, jalankan git --stat a2a2894 3a1ba8f

6
28 июля '15 в 1:20 2015-07-28 01:20 jawabannya diberikan oleh Nikita G. 28 Juli '15 pada 1:20 2015-07-28 01:20

Saya menggunakan Git versi 2.6.1.windows.1 di Windows 10, jadi saya perlu sedikit mengubah jawaban Nevik (tilde bukannya caret):

 git diff COMMIT~ COMMIT 

Pilihan lain adalah mengutip kereta:

 git diff "COMMIT^" COMMIT 
4
20 янв. Jawabannya diberikan oleh Juuso Ohtonen 20 Januari 2017-01-20 11:00 '17 pada 11:00 2017-01-20 11:00

Saya suka perintah di bawah ini untuk membandingkan komit tertentu dan komit terakhir:

 git diff <commit-hash>^- 

Contoh:

 git diff cd1b3f485^- 
4
10 апр. balasan diberikan oleh starcwl 10 Apr 2018-04-10 13:11 '18 jam 1:11 siang 2018-04-10 13:11

Perintah ini akan mendapatkan hasit induk Git:

 git log -n 2 <commit-hash> 

Setelah itu, git diff-tool <commit-hash> <parent-commit-hash>

Contoh:

 bonnie@bonnie ~/ $ git log -n 2 7f65b9a9d3820525766fcba285b3c678e889fe3 commit 7f65b9a9d3820525766fcba285b3c678e889fe3b Author: souparno <souparno.majumder@gmail.com> Date: Mon Jul 25 13:17:07 2016 +0530 CSS changed to maintain the aspect ratio of the channel logos and to fit them properly. commit c3a61f17e14e2b80cf64b172a45f1b4826ee291f Author: souparno <souparno.majumder@gmail.com> Date: Mon Jul 25 11:28:09 2016 +0530 The ratio of the height to width of the channel images are maintained. 

Setelah itu

 git difftool 7f65b9a9d3820525766fcba285b3c678e889fe3b c3a61f17e14e2b80cf64b172a45f1b4826ee291f 
2
29 июля '16 в 15:19 2016-07-29 15:19 jawabannya diberikan oleh suparno majumder 29 Juli '16 pukul 15:19 2016-07-29 15:19

Untuk memeriksa perubahan lengkap:

  git diff <commit_Id_1> <commit_Id_2> 

Untuk memeriksa hanya file yang dimodifikasi / ditambahkan / dihapus:

  git diff <commit_Id_1> <commit_Id_2> --name-only 

CATATAN Untuk menguji beda tanpa melakukan di antaranya, Anda tidak perlu menentukan pengidentifikasi komit.

0
29 янв. jawabannya diberikan bit_cracker007 29 Jan 2019-01-29 22:41 '19 jam 22:41 2019-01-29 22:41

Dalam hal memeriksa perubahan sumber dalam representasi grafis,

 $gitk (Mention your commit id here) 

misalnya:

 $gitk HEAD~1 
-1
11 мая '18 в 11:02 2018-05-11 11:02 jawabannya diberikan oleh user272390 pada 11 Mei '18 di 11:02 2018-05-11 11:02

Pertanyaan lain tentang atau Ajukan pertanyaan