Saya memiliki cabang lokal yang melacak cabang jarak jauh / cabang utama. Setelah berjalan git-pull
dan git-log
, log akan menampilkan semua komit di cabang pelacakan jarak jauh serta cabang saat ini. Namun, karena ada begitu banyak perubahan yang dilakukan pada cabang terpencil, saya hanya perlu melihat komitmen yang dilakukan pada cabang lokal saat ini.
Apa yang akan menjadi perintah Git untuk digunakan hanya menunjukkan komit untuk cabang tertentu?
Catatan:
Informasi konfigurasi:
[branch "my-branch"]
remote = origin
merge = refs/heads/master
sumber
git log --no-merges master..
persis apa yang saya butuhkan.--no-merges
mungkin muncul bahwa itu hanya menampilkan komit dari cabang tertentu, tetapi itu benar-benar hanya menunjukkan komit yang tidak menghasilkan penggabungangit log --no-merges --pretty='%C(yellow)%h%d %Creset%an %Cgreen%ar:%Creset %s' --graph master..
Menggunakan:
Ini hanya untuk cabang target (tentu saja --graph, --abbrev-commit --decorate lebih terpoles).
Opsi kuncinya adalah
--first-parent
: "Ikuti saja komitmen orang tua pertama setelah melihat komit gabungan" ( https://git-scm.com/docs/git-log )Ini mencegah fork dari ditampilkan.
sumber
--first-parent <branch_name>
adalah pilihannya. bekerja!--first-parent <branch_name>
juga bekerja untukku! Saya berakhir dengan alias untukgit log --first-parent $current_branch_name --no-merges
. Menanggapi @EdRandall, itu akan menunjukkan komit pada cabang + yang dari mana ia bercabang. Misalnya:new_feature
dari master. Anda menambahkan komit C dan D padanya. Kemudian Anda menambahkan E dan F ke master. Anda kemudian menggabungkan master kenew_feature
. Menggunakangit log
padanew_feature
, Anda akan melihat "merge master", F, E, D, C, A, B. menggunakangit log --first-parent new_feature --no-merges
, Anda akan melihat D, C, A, B.Jika Anda hanya menginginkan komit yang dilakukan oleh Anda di cabang tertentu, gunakan perintah di bawah ini.
sumber
Masalah yang saya alami, yang saya pikir mirip dengan ini, adalah bahwa master terlalu jauh di depan titik cabang saya sehingga sejarah tidak berguna. (Menavigasi ke titik cabang akan memakan waktu terlalu lama.)
Setelah beberapa percobaan dan kesalahan, ini memberi saya kira-kira apa yang saya inginkan:
sumber
lari saja
git log origin/$BRANCH_NAME
sumber