Як я можу показати назву гілок у `git log`?


216

Як я можу показати назву гілок у висновку git log?

Наприклад, з, git log --graph --allя отримую хороший огляд комітетів, але заплутаюся, який рядок є головним, а який є моєю гілкою, наприклад.


1
Зручно, показ назв пов'язаних голів чи тегів, як видається, вже зроблено за замовчуванням з часу останнього gitоновлення.
підкреслюй_

Відповіді:


321

Спробуйте варіант прикраси.

git log --graph --all --decorate

Він коментує комісії, на які вказує теги або гілки.


42
З --prettyви можете використовувати , %dде ви хочете , щоб «прикраси».
CB Bailey

4
@noli: Що ти очікуєш, що це покаже? Не всі комісії - це поради щодо галузей.
CB Bailey

9
@noli git зберігає лише ім'я гілки на останньому комітеті гілки (чайові). Усі історії в історії рівні та анонімні. Якщо ви хочете, щоб названі гілки були так, щоб кожна комісія носила ім'я гілки, ви можете використовувати Mercurial.
Сампо Смоландер

7
@CharlesBailey: Мені подобаються кольори реф git log --graph --all --oneline --decorate. У мене є псевдонім, git graphякий використовує --pretty(для того, щоб показувати й інші речі, такі як автор та дата), але %dтам не дає мені кольорів --decorate. Я використовую жовтий для всіх моїх рефов на даний момент, ви знаєте , як я можу дозволити --pretty«s %dрядок успадковують кольору --decorate?
Готьє

3
@Gauthier Якщо ви хочете мати кольори за замовчуванням у своїх --prettyформатах, додайте %C(auto)перед елементом те, що має бути кольоровим. наприкладgit log --pretty=format:"%cd %h %cn %s %C(auto)%d"
Radon8472

7

Я шукав щось подібне до цього - але хотів знати, в якій галузі було внесено зміни. Сподіваємось, ця відповідь буде корисна і іншим.

Я досліджую ризик із blackboxшифруванням, коли репо та його гілки / теги можуть стати недоступними для поточного, adminsколи достатньо користувачів покине проект таkeyrings каталог не релігійно базується на головному)

Я виявив, що відповідь нижче корисна, де keyrings каталог не оновлювався від майстра ...

В основному додавання --sourceбуло те, що мені потрібно було показати гілки / теги. Додавання --name-onlyтакож покаже, який файл був фактично змінений.

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

Ще одна корисна відповідь: Як показати журнал git із назвою гілки


Для мене --sourceодин дає HEADвсі коміти. У поєднанні з --allцим, схоже, розрізняють різні гілки, але відображається інформація - це не те, чого я очікую: за masterкомісії refs/heads/master, які я робив , замість того, щоб отримувати , я отримую якусь приватну гілку ( refs/remotes/origin/…). Я підозрюю, що злиття та / або нові гілки можуть Gitвтратити інформацію про історію.
vinc17

Замість цього --allя можу фільтрувати на гілках за допомогою --branches --remotes=<pattern>, але як тільки дві гілки об'єднаються разом, у Git більше немає інформації, щодо якої з них було зроблено зобов’язання, коли це було зроблено.
vinc17

1

Якщо ви випадково використовуєте oh-my-zsh як свій термінал, тоді є купа псевдонімів git. Все це можна побачити на їхньому репо- о-мо-зш / плагіні / git . Якщо ви не використовуєте цей термінал, ви просто можете взяти псевдоніми та вставити ті, що вам подобаються, у ваше власне оточення.

Прийнята відповідь представляє git log --graph --all --decorateкоманду, яка доступна як glggaпсевдонім у oh-my-zsh.

Особисто я віддаю перевагу glodsпсевдонім, який перекладається на:

git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.