git -> tampilkan daftar file yang diubah dalam komit terbaru di direktori tertentu

Jawaban:

164

Yang ini lebih mirip dengan perintah svn karena menunjukkan status file: Ditambahkan (A), Disalin (C), Dihapus (D), Dimodifikasi (M), Berganti Nama (R), dan lainnya.

git log --name-status -10 path/to/dir

Layak untuk melihat halaman dokumentasi lengkap untuk git log. Di sana Anda akan belajar yang -10mengacu pada 10 komit terakhir, dan -pakan memberi Anda tambalan lengkap, di antara berbagai barang lainnya.

htanata
sumber
12
Untuk kelengkapan: kumpulan opsi serupa yang umum digunakan adalah -p(patch lengkap), --stat(jumlah baris yang diubah), --numstat(seperti --stattetapi dapat dibaca mesin) --name-status, dan --name-only(hanya nama file).
Kaskabel
3
Bagi siapa pun yang datang ke pertanyaan ini tanpa mengetahui sebelumnya, -10 mengacu pada jumlah komit yang ingin Anda tampilkan. Jika Anda memerlukan daftar komit yang lengkap, coba buat angkanya sangat besar, seperti -1000 atau lebih sesuai kebutuhan.
Julian Soro
Apakah mungkin juga untuk melihat sejarah sejak komit atau label tertentu? Ini ratusan komitmen yang lalu, jadi coba hitung itu ...
MrFox
2
@MrFox git log <from revision>.., misalnya git log abc123... Baca lebih lanjut tentang format rentang di sini: kernel.org/pub/software/scm/git/docs/…
htanata
37

Untuk menampilkan semua file yang diubah dalam 10 komit terakhir, tanpa informasi komit apa pun, lakukan:

git diff --name-only HEAD~10..HEAD yourdir
dbn
sumber
3
Solusi sempurna untuk membuka kembali file di editor Anda.
cdosborn
1
Solusi ini hanya mencantumkan jalur file, tidak ada komentar, yang sangat dihargai atas jawaban yang diterima. Jika semua yang Anda inginkan adalah daftar file yang telah diubah di komit yang ditentukan, dan solusi ini melakukan hal itu .
Big Rich
6

Coba lakukan

git log -p -10 yourdir/

Ini harus berhasil.

biru112
sumber
1
OP meminta daftar file diubah, bukan patch lengkapnya.
Cascabel
1
Jika Anda ingin daftar file diubah, Anda dapat melakukan --stat di tempat -p
blue112
1

Untuk menampilkan semua commitcabang Anda (terbaru dan lama), Anda perlu menghitung jumlah komit di cabang tersebut

git rev-list --count branch_name

Setelah Anda mendapatkan semua jumlah komit, Anda dapat menjalankan

git log --name-status -countNumber /path
Sayan Biswas
sumber
Dan seseorang dapat menyederhanakan tampilan dengan menambahkan --pretty=onelineopsi ke git logperintah di atas. Menambahkan | sort | uniqperintah akan membantu seseorang melihat penandaan status A / C / D / M / R sesuai jawaban
htanata