Как я могу показать название веток в выводе git log?
Например, с помощью git log --graph --allя получаю хороший обзор коммитов, но запутываюсь, какая строка является главной, а какая, например, моей веткой.
С помощью --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каталог не был обновлен с master ...
В основном добавление --sourceбыло то, что мне нужно, чтобы показать ветви / теги. Добавление --name-onlyтакже покажет, какой файл был фактически изменен.
cd /path/to/repo-that-uses-blackbox-encryption
git log --graph --all --decorate --source --name-only keyrings
Для меня --sourceодин дает HEADдля всех коммитов. В сочетании с --allэтим, кажется, различают разные ветви, но отображаемая информация не та, которую я ожидаю: для коммитов, которые я сделал master, вместо того, чтобы получить refs/heads/master, я получаю некоторую приватную ветвь ( refs/remotes/origin/…). Я подозреваю, что слияния и / или новые ветки приводят к Gitпотере исторической информации.
vinc17
Вместо этого --allя могу фильтровать ветки с помощью --branches --remotes=<pattern>, но как только две ветки слились воедино, у Git больше нет информации о том, какая из них имела коммит, когда он был сделан.
Vinc17
1
Если вы используете oh-my-zsh в качестве терминала, то вам доступны несколько псевдонимов git. Все это можно увидеть в репозитории oh-my-zsh / plugins / git . Если вы не используете этот терминал, вы можете просто взять псевдонимы и вставить те, которые вам нравятся, в вашу среду.
Принятый ответ представляет git log --graph --all --decorateкоманду, которая доступна как glggaпсевдоним в oh-my-zsh.
Лично я предпочитаю glodsпсевдоним, который переводится как:
git
обновления.Ответы:
Попробуйте вариант украсить.
Он комментирует коммиты, на которые указывают теги или ветви.
источник
--pretty
вы можете использовать,%d
где вы хотите «украшения».git log --graph --all --oneline --decorate
. У меня есть псевдоним,git graph
который использует--pretty
(чтобы показать другие вещи, такие как автор и дата), но%d
там не дает мне цвета--decorate
. Я использую желтый для всех моих рефов на данный момент, вы знаете , как я могу позволить--pretty
«s%d
строку наследуют цвета--decorate
?--pretty
форматах были цвета по умолчанию , добавьте%C(auto)
перед элементом то, что должно быть окрашено. напримерgit log --pretty=format:"%cd %h %cn %s %C(auto)%d"
Я искал что-то похожее на это - но хотел знать, в какую ветку было внесено изменение. Надеюсь, этот ответ будет полезен и другим.
Я исследую риск с помощью
blackbox
шифрования, когда репозиторий и его ветви / теги могут стать недоступными для текущего,admins
когда достаточное количество пользователей покидают проект, иkeyrings
каталог не был религиозно основан на оригинале)Я обнаружил, что ответ ниже был полезен, когда
keyrings
каталог не был обновлен с master ...В основном добавление
--source
было то, что мне нужно, чтобы показать ветви / теги. Добавление--name-only
также покажет, какой файл был фактически изменен.Еще один полезный ответ: как показать git log с именем ветки
источник
--source
один даетHEAD
для всех коммитов. В сочетании с--all
этим, кажется, различают разные ветви, но отображаемая информация не та, которую я ожидаю: для коммитов, которые я сделалmaster
, вместо того, чтобы получитьrefs/heads/master
, я получаю некоторую приватную ветвь (refs/remotes/origin/…
). Я подозреваю, что слияния и / или новые ветки приводят кGit
потере исторической информации.--all
я могу фильтровать ветки с помощью--branches --remotes=<pattern>
, но как только две ветки слились воедино, у Git больше нет информации о том, какая из них имела коммит, когда он был сделан.Если вы используете oh-my-zsh в качестве терминала, то вам доступны несколько псевдонимов git. Все это можно увидеть в репозитории oh-my-zsh / plugins / git . Если вы не используете этот терминал, вы можете просто взять псевдонимы и вставить те, которые вам нравятся, в вашу среду.
Принятый ответ представляет
git log --graph --all --decorate
команду, которая доступна какglgga
псевдоним в oh-my-zsh.Лично я предпочитаю
glods
псевдоним, который переводится как:источник