Bagaimana saya bisa menunjukkan nama cabang di `git log`?
216
Bagaimana saya bisa menunjukkan nama cabang di output git log?
Misalnya dengan, git log --graph --allsaya mendapatkan ikhtisar bagus dari komit, tetapi bingung baris mana yang master, dan mana cabang saya misalnya.
Dengan --prettyAnda dapat menggunakan di %dmana Anda ingin 'dekorasi'.
CB Bailey
4
@noli: Apa yang Anda harapkan akan ditampilkan? Tidak semua komitmen adalah tip cabang.
CB Bailey
9
@noli git hanya menyimpan nama cabang pada komit cabang terbaru (ujung). Semua komitmen dalam sejarah adalah sama dan anonim. Jika Anda ingin menamai cabang sehingga setiap komit membawa nama cabang, Anda bisa menggunakan Mercurial.
Sampo Smolander
7
@CharlesBailey: Saya suka warna referensi dengan git log --graph --all --oneline --decorate. Saya memiliki alias git graphyang menggunakan --pretty(untuk menunjukkan hal-hal lain juga, seperti penulis dan tanggal), tetapi %dtidak memberi saya warna --decorate. Saya menggunakan kuning untuk semua ref saya untuk saat ini, apakah Anda tahu bagaimana saya bisa membiarkan --pretty's %dtali mewarisi warna --decorate?
Gauthier
3
@Gauthier Jika Anda ingin memiliki warna default dalam --prettyformat Anda , tambahkan %C(auto)sebelum elemen apa yang harus diwarnai. misgit log --pretty=format:"%cd %h %cn %s %C(auto)%d"
Radon8472
7
Saya mencari sesuatu yang mirip dengan ini - tetapi ingin tahu cabang apa perubahan dibuat. Semoga jawaban ini bermanfaat bagi orang lain juga.
Saya sedang menyelidiki risiko dengan blackboxenkripsi, di mana repo dan cabang / tagnya mungkin tidak tersedia saat ini adminsketika cukup banyak pengguna meninggalkan proyek dan keyringsdirektori tersebut tidak berdasarkan agama dari master)
Saya menemukan bahwa jawaban di bawah ini membantu di mana keyringsdirektori tidak diperbarui dari master ...
Pada dasarnya menambahkan --sourceadalah apa yang saya butuhkan untuk menunjukkan cabang / tag. Menambahkan --name-onlyjuga akan menunjukkan file mana yang benar-benar diubah.
cd /path/to/repo-that-uses-blackbox-encryption
git log --graph --all --decorate --source --name-only keyrings
Bagi saya, --sourcesendirian memberi HEADuntuk semua komitmen. Dalam kombinasi dengan --all, ini tampaknya membedakan antara cabang yang berbeda, tetapi informasi yang ditampilkan bukan yang saya harapkan: untuk komitmen yang saya lakukan master, alih-alih mendapatkan refs/heads/master, saya mendapatkan beberapa cabang pribadi ( refs/remotes/origin/…). Saya menduga bahwa penggabungan dan / atau cabang baru membuat Gitkehilangan informasi sejarah.
vinc17
Alih-alih --all, saya dapat memfilter di cabang dengan --branches --remotes=<pattern>, tetapi segera setelah dua cabang digabung bersama, Git tidak lagi memiliki informasi di mana seseorang memiliki komitmen ketika itu dilakukan.
vinc17
1
Jika Anda menggunakan oh-my-zsh sebagai terminal Anda maka tersedia banyak alias git. Semuanya dapat dilihat di repo mereka oh-my-zsh / plugins / git . Jika Anda tidak menggunakan terminal ini, maka Anda bisa mengambil alias dan menempelkan yang Anda suka ke lingkungan Anda sendiri.
Jawaban yang diterima menyajikan git log --graph --all --decorateperintah, yang tersedia sebagai glggaalias di oh-my-zsh.
Secara pribadi saya lebih suka glodsalias yang diterjemahkan menjadi:
git
pembaruan terbaru .Jawaban:
Coba opsi hiasi.
Ini menjelaskan komit yang ditunjukkan oleh tag atau cabang.
sumber
--pretty
Anda dapat menggunakan di%d
mana Anda ingin 'dekorasi'.git log --graph --all --oneline --decorate
. Saya memiliki aliasgit graph
yang menggunakan--pretty
(untuk menunjukkan hal-hal lain juga, seperti penulis dan tanggal), tetapi%d
tidak memberi saya warna--decorate
. Saya menggunakan kuning untuk semua ref saya untuk saat ini, apakah Anda tahu bagaimana saya bisa membiarkan--pretty
's%d
tali mewarisi warna--decorate
?--pretty
format Anda , tambahkan%C(auto)
sebelum elemen apa yang harus diwarnai. misgit log --pretty=format:"%cd %h %cn %s %C(auto)%d"
Saya mencari sesuatu yang mirip dengan ini - tetapi ingin tahu cabang apa perubahan dibuat. Semoga jawaban ini bermanfaat bagi orang lain juga.
Saya sedang menyelidiki risiko dengan
blackbox
enkripsi, di mana repo dan cabang / tagnya mungkin tidak tersedia saat iniadmins
ketika cukup banyak pengguna meninggalkan proyek dankeyrings
direktori tersebut tidak berdasarkan agama dari master)Saya menemukan bahwa jawaban di bawah ini membantu di mana
keyrings
direktori tidak diperbarui dari master ...Pada dasarnya menambahkan
--source
adalah apa yang saya butuhkan untuk menunjukkan cabang / tag. Menambahkan--name-only
juga akan menunjukkan file mana yang benar-benar diubah.Jawaban lain yang bermanfaat: Cara menampilkan git log dengan nama cabang
sumber
--source
sendirian memberiHEAD
untuk semua komitmen. Dalam kombinasi dengan--all
, ini tampaknya membedakan antara cabang yang berbeda, tetapi informasi yang ditampilkan bukan yang saya harapkan: untuk komitmen yang saya lakukanmaster
, alih-alih mendapatkanrefs/heads/master
, saya mendapatkan beberapa cabang pribadi (refs/remotes/origin/…
). Saya menduga bahwa penggabungan dan / atau cabang baru membuatGit
kehilangan informasi sejarah.--all
, saya dapat memfilter di cabang dengan--branches --remotes=<pattern>
, tetapi segera setelah dua cabang digabung bersama, Git tidak lagi memiliki informasi di mana seseorang memiliki komitmen ketika itu dilakukan.Jika Anda menggunakan oh-my-zsh sebagai terminal Anda maka tersedia banyak alias git. Semuanya dapat dilihat di repo mereka oh-my-zsh / plugins / git . Jika Anda tidak menggunakan terminal ini, maka Anda bisa mengambil alias dan menempelkan yang Anda suka ke lingkungan Anda sendiri.
Jawaban yang diterima menyajikan
git log --graph --all --decorate
perintah, yang tersedia sebagaiglgga
alias di oh-my-zsh.Secara pribadi saya lebih suka
glods
alias yang diterjemahkan menjadi:sumber