`` Git log '' da şubelerin adını nasıl gösterebilirim?


216

Şunun çıktısındaki dalların adını nasıl gösterebilirim git log?

Örneğin git log --graph --all, taahhütler hakkında güzel bir genel bakış elde ediyorum, ancak hangi hattın usta ve hangisinin şubem olduğunu karıştırıyorum.


1
Handily, bağlı kafaların veya etiketlerin adlarını göstermek son gitgüncellemeden bu yana varsayılan olarak zaten yapılmış gibi görünüyor .
underscore_d

Yanıtlar:


321

Süsleme seçeneğini deneyin.

git log --graph --all --decorate

Etiketler veya şubelerle gösterilen taahhütlere açıklama ekler.


42
İle 'süslemeler' istediğiniz yerde --prettykullanabilirsiniz %d.
CB Bailey

4
@noli: Ne göstermesini bekliyorsun? Tüm taahhütler şube ipucu değildir.
CB Bailey

9
@noli git, şube adını yalnızca şubenin en son işleminde saklar (ipucu). Tarihteki tüm taahhütler eşit ve anonimdir. Her dalın dal adını taşıması için adlandırılmış dallar istiyorsanız, Mercurial kullanabilirsiniz.
Sampo Smolander

7
@CharlesBailey: Referansların renklerini seviyorum git log --graph --all --oneline --decorate. (Yazar ve tarih gibi diğer şeyleri de göstermek için) git graphkullanan bir takma adım var --pretty, ancak %dbana renkleri vermiyor --decorate. Ben şimdilik tüm hakemlerimizle için sarı kullanmak ben sağlayabilirsiniz biliyor musunuz --pretty'ın %drenkleri devralır dizesi --decorate?
Gauthier

3
@Gauthier Biçimlerinizde varsayılan renklere sahip olmak istiyorsanız , öğeden önce renklendirilmesi gerekenleri --prettyekleyin %C(auto). ör.git log --pretty=format:"%cd %h %cn %s %C(auto)%d"
Radon8472

7

Buna benzer bir şey arıyordum - ama hangi dalda değişiklik yapıldığını bilmek istedim. Umarım bu cevap başkaları için de yararlı olacaktır.

blackboxŞifreleme ile ilgili bir riski araştırıyorum , burada bir repo ve şubeleri / etiketleri, adminsyeterli sayıda kullanıcı bir projeyi terk ettiğinde ve keyringsdizin dini olarak ana tabanlı olmadığında geçerli olmayabilir)

Aşağıdaki cevabın keyringsdizinin master'dan güncellenmediği yerde yardımcı olduğunu buldum ...

Temelde ekleme --sourcedalları / etiketleri göstermek için ne gerekli oldu. Ekleme --name-only, hangi dosyanın gerçekten değiştirildiğini de gösterecektir.

cd /path/to/repo-that-uses-blackbox-encryption
git log --graph --all --decorate --source --name-only keyrings

Başka bir faydalı cevap: Git log'u şube adıyla nasıl gösterebilirim?


Benim için --sourcetek başına HEADbütün taahhütleri verir . Bununla birlikte --all, bu farklı dallar arasında ayrım yapıyor gibi görünüyor, ancak görüntülenen bilgiler beklediğim gibi değil: Yaptığım taahhütler için master, almak yerine, refs/heads/masterbazı özel şubeler ( refs/remotes/origin/…) alıyorum . Birleşmelerin ve / veya yeni şubelerin Gitgeçmiş bilgilerini kaybettiğinden şüpheleniyorum .
vinc17

Bunun yerine --all, dallara filtre uygulayabilirim --branches --remotes=<pattern>, ancak iki dal birleştirildiğinde, Git artık bir işin yapıldığı zaman taahhütte bulunduğu bilgiye sahip değildir.
vinc17

1

Terminaliniz olarak oh-my-zsh kullanıyorsanız, bir sürü git takma adı kullanılabilir. Bunların hepsi oh-my-zsh / plugins / git deposunda görülebilir . Bu terminali kullanmazsanız, diğer adları alabilir ve sevdiklerinizi kendi ortamınıza yapıştırabilirsiniz.

Kabul edilen cevap , oh-my-zsh içinde takma ad git log --graph --all --decorateolarak kullanılabilen komutu sunar glgga.

Şahsen ben şu glodsanlama gelir:

git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.