Bagaimana cara mendapatkan log dari semua cabang untuk penulis sekaligus?

213

Saya perlu mendapatkan laporan dari semua komitmen yang penulis lakukan. Sejauh ini, saya memiliki skrip yang membungkus perintah berikut:

git log --pretty=format:"%ad:%an:%d:%B" --date=short --reverse --all --since=2.months.ago --author=Petr

Ini bekerja dengan baik. Namun, itu hanya melaporkan tindakan untuk cabang saat ini. Apakah ada opsi yang akan mencatat pesan komit untuk penulis dari semua cabang , tidak hanya membentuk yang sekarang?

Dengan kata lain, dapatkah git membuat urutan diurutkan terbalik (berdasarkan datetime) dari semua commit di repositori dan mengekstrak info log dari urutan itu?

Diselesaikan: (disalin dari komentar di bawah yang disembunyikan sebaliknya)

Masalahnya adalah bahwa saya memiliki satu repositori dan dua klon untuk bekerja secara bersamaan pada dua cabang. Saya memang mendorong perubahan ke repositori asal, tapi saya lupa mengambil perubahan ke repositori yang dikloning. Dengan cara ini sepertinya --alltidak berfungsi ketika menggunakannya untuk repositori hasil kloning.

semangat
sumber
Kira Anda dapat menulis skrip shell untuk itu: git logmenerima committishsebagai argumen pertama: git log mybranch(dan daftarkan semua cabang yang Anda gunakan git branch).
Alexander Pavlov
@AlexanderPavlov: Saya mungkin tidak mengerti. Apa itu committish? Apakah mungkin untuk mendapatkan informasi melalui satu perintah git?
pepr
1
Saya mendapatkan komitmen dari semua cabang, bukan hanya yang saat ini? Ini diharapkan sejak Anda berikan --all. Perintah Anda benar
CharlesB
1
@AlexanderPavlov: Jangan repot-repot dengan git rev-listparsing, git log --alltidak apa-apa.
CharlesB
1
@CharlesB: Itulah yang saya pikirkan tentang --all, tetapi ternyata tidak bekerja seperti ini untuk saya. Saya tidak mengerti penjelasan bantuannya: Berpura-pura seolah-olah semua referensi refs/tercantum pada baris perintah sebagai <commit>.
pepr

Jawaban:

186

Perintah Anda benar, karena Anda menggunakan --allsakelar yang memberikan semua komit dari semua cabang. Untuk menjawab pertanyaan dalam komentar Anda, itu berfungsi juga dalam repositori kosong.

CharlesB
sumber
64

Alih-alih --allAnda mungkin ingin menggunakan --branches, karena --alljuga termasuk refs/tagsdan refs/remotes.

Gert Hengeveld
sumber