Git: Lihat komit terakhir saya

390

Saya hanya ingin melihat file yang dilakukan di komit terakhir persis seperti yang saya lihat daftar ketika saya melakukannya git commit. Sayangnya mencari

git "last commit" log

di Google membuat saya tidak punya tempat. Dan

git diff HEAD^..HEAD

bukan yang saya butuhkan, tentu saja, karena itu memuntahkan nyali perubahan juga.

Dan Rosenstark
sumber
35
Terima kasih, sebenarnya saya hanya butuh git diff HEAD^..HEAD!
Ameen

Jawaban:

376

Seperti yang ditentukan melalui komentar, tampaknya OP sedang mencari

$ git log --name-status HEAD^..HEAD

Ini juga sangat dekat dengan output yang Anda dapatkan dari svn statusatau svn log -v, yang banyak orang yang datang dari subversi ke git kenal.

--name-statusadalah kuncinya di sini; seperti dicatat oleh orang lain dalam pertanyaan ini, Anda dapat menggunakan git log -1, git show, dan git diffuntuk mendapatkan jenis yang sama output. Secara pribadi, saya cenderung menggunakan git show <rev>ketika melihat revisi individual.

Mike Seplowitz
sumber
Saya akui, komentar bukanlah cara terbaik bagi saya untuk membuat pertanyaan saya lebih bersih :) terima kasih MikeSep
Dan Rosenstark
4
Saya pikir ini memberikan komitmen terakhir, bukan? Jadi, untuk terakhirKU yang akan saya lakukangit log --stat --author nroose -n 1
nroose
1
Dan dapat disingkat dan disingkat dengan git show --name-status --oneline
jasonleonhard
Itu sangat jelas! Saya seharusnya menebak itu sesuatu yang sangat sederhana karena ini adalah jenis pertanyaan yang terjadi setiap saat.
Scott Biggs
1
Jika menggunakan force push, perintah ini akan menunjukkan patch terakhir kepada Anda dan bukan komit terbaru (pada waktunya) ... mungkin rumit dalam beberapa kasus penggunaan
Olix
208

Gunakan git show :

git show --summary

Ini akan menunjukkan nama-nama file yang dibuat atau dihapus, tetapi bukan nama-nama file yang diubah . The git showperintah mendukung berbagai macam format output yang menunjukkan berbagai jenis informasi tentang komit.

Greg Hewgill
sumber
1
@jamessan git show --statdekat, tetapi tidakkah ada tampilan di mana kata 'dimodifikasi' atau 'ditambahkan' muncul di sebelah file?
Dan Rosenstark
3
Jika Anda hanya ingin nama-nama file (bahkan kurang dari --stat), Anda mungkin juga ingin melihat --name-statusdan --name-onlyberalih.
Mike Seplowitz
1
@ MikeSep, itu sebenarnya yang saya butuhkan. Jika Anda menjawabnya, saya akan menandainya sebagai jawaban terbaik, karena bagi saya jawabannya. Saya menggunakangit log --name-status HEAD^..HEAD
Dan Rosenstark
Sejauh ini ini adalah solusi paling sederhana dari yang ditawarkan.
Matius
101
git log -1 --stat

bisa bekerja

rajutan
sumber
44

Untuk melihat komit terakhir

git log -1

Untuk melihat 2 komit terakhir

git log -2

dll ....

Ahmed Al Bermawy
sumber
1
Tetapi pertanyaan mengatakan "... ingin melihat file yang dikomit di komit terakhir" .
Peter Mortensen
42

Sejauh ini perintah paling sederhana untuk ini adalah:

git show --name-only

Karena daftar hanya file di komit terakhir dan tidak memberi Anda seluruh nyali

Contoh dari output adalah:

commit  fkh889hiuhb069e44254b4925d2b580a602
Author: Kylo Ren <[email protected]>
Date:   Sat May 4 16:50:32 2168 -0700

Changed shield frequencies to prevent Millennium Falcon landing

 www/controllers/landing_ba_controller.js             
 www/controllers/landing_b_controller.js            
 www/controllers/landing_bp_controller.js          
 www/controllers/landing_h_controller.js          
 www/controllers/landing_w_controller.js  
 www/htdocs/robots.txt                        
 www/htdocs/templates/shields_FAQ.html       
nickhar
sumber
7
Pertimbangkan --name-statusalih-alih --name-only.
Acumenus
5
Ada masalah di sana .. kekaisaran menggunakan php untuk grid pertahanan!
ptim
3
Contoh terbaik yang pernah saya lihat di stackoverflow! "Itu bukan komitmen yang kamu cari."
Scott Biggs
22
git log -1 --name-status

Apakah bekerja untuk saya.

mikrub
sumber
21

Untuk melihat perubahan komit terakhir

git show HEAD

Atau untuk melihat perubahan komit terakhir kedua

git show HEAD~1

Dan untuk selanjutnya cukup ganti '1' di atas dengan nomor urut komit yang diperlukan.

shubham mishra
sumber
15

Setelah Anda melakukan beberapa komit atau mengkloning / menarik repositori, Anda mungkin ingin melihat komit apa yang telah dibuat. Cukup periksa solusi sederhana ini untuk melihat riwayat komit Anda (dari komit terakhir / terakhir ke komit pertama).

Untuk komit terakhir, hanya api perintah ini: git log -1. Untuk hal-hal menarik lainnya lihat di bawah -

  1. Untuk melihat ID komit (SHA-1 checksum), Nama penulis <ID ID>, Tanggal bersama waktu, dan komit pesan -

    git log
    
  2. Untuk melihat beberapa statistik lagi, seperti nama semua file yang diubah selama komit dan jumlah penyisipan / penghapusan. Ini sangat berguna saat meninjau kode -

    git log --stat
    
  3. Untuk melihat histori komit dalam beberapa format cantik :) (Ini diikuti oleh beberapa opsi prebuild) -

    • Jika Anda memiliki terlalu banyak komitmen untuk ditinjau, perintah ini akan menampilkannya dalam satu baris yang rapi:

      git log --pretty=oneline
      
    • Untuk melihat komit Anda yang pendek, sedang, penuh, atau bahkan lebih detail, gunakan yang berikut, masing-masing -

      git log --pretty=short
      git log --pretty=medium
      git log --pretty=full
      git log --pretty=fuller
      
  4. Anda bahkan dapat menggunakan format output Anda sendiri menggunakan formatopsi -

    git log --pretty=format:"%an, %ae - %s"
    

    di mana% an - nama penulis,% ae - email penulis,% s - subjek komit, dll.

Ini dapat membantu Anda dengan riwayat komit Anda. Untuk informasi lebih lanjut, klik di sini .

Mithilesh Tipkari
sumber
11
$ git diff - HEAD only-only ^ .. HEAD

atau

$ git log - HEAD only -name ^ .. KEPALA
Greg Bacon
sumber
Itu yang saya butuhkan cukup banyak. Bagaimana dengan sesuatu yang mengatakan apakah itu diubah, ditambahkan atau dihapus? Mungkin dengan surat, svn-style?
Dan Rosenstark
1
Mengerti sekarang git log --name-status HEAD^..HEAD
Dan Rosenstark
2
Alih-alih git log ... HEAD^..HEAD, bukankah lebih mudah digunakan git log ... -1 HEAD, atau lebih baik git show ... HEAD?
Jakub Narębski
Setelah menjelajahi beberapa posting Stackoverflow, ini adalah jawaban yang saya butuhkan. Saya hanya ingin file dan tidak ada yang lain. Tidak ada ringkasan komit, hanya file dari komit terbaru. TERIMA KASIH!
luckytaxi
6

git diff --stat HEAD

Ini menunjukkan diffstat yang sama dengan komit terakhir Anda.

andy magoon
sumber
4

Cara lain untuk mendaftar hanya file adalah dengan menggunakan:
git diff-tree --no-commit-id --name-only -r HEAD^..HEAD
Atau Anda dapat menggunakan dua ID komit

Ismail Cherri
sumber
keuntungan dari ini log?
Dan Rosenstark
Ini pada dasarnya adalah cara berbeda untuk mendaftarkan file. Saya biasanya menggabungkan ini dengan rsync untuk penyebaran
Ismail Cherri
0

Jika Anda berbicara tentang menemukan komit terbaru dan terhebat setelah Anda melakukan checkout git dari beberapa komit sebelumnya ( dan lupa untuk menuliskan hash HEAD sebelum mengeksekusi checkout ) sebagian besar di atas tidak akan membuat Anda kembali ke tempat kamu mulai. git log - [some #] hanya menampilkan log dari posisi SAAT KEPALA , yang belum tentu komit terakhir (keadaan proyek). Checkout akan memutuskan HEAD dan mengarahkannya ke apa pun yang Anda periksa.

Anda dapat melihat seluruh reflog git , hingga mencapai entri yang merujuk pada klon asli. BTW, ini juga tidak akan berfungsi jika ada komitmen yang dibuat antara saat Anda mengkloning proyek dan ketika Anda melakukan checkout. Kalau tidak, Anda bisa berharap semua komitmen Anda pada mesin lokal Anda ada di server, dan kemudian mengkloning kembali seluruh proyek.

Semoga ini membantu.

HadziJo
sumber
Terima kasih, ini poin yang bagus tapi pertanyaan aslinya jauh lebih sederhana dan sudah dijawab dengan baik berkali-kali.
Dan Rosenstark