如何在git log中显示分支的名称?


215

如何在输出中显示分支的名称git log

例如,git log --graph --all我对提交有了一个很好的概述,但是例如,混淆了哪一行是主行,哪一行是我的分支。


1
方便地,自最近git更新以来,默认情况下已经显示了链接的标题或标签的名称。
underscore_d

Answers:


320

尝试装饰选项。

git log --graph --all --decorate

它注释由标签或分支指向的提交。


42
有了--pretty你可以使用%d你想要的“装饰”。
CB Bailey 2009年

4
@noli:您希望它显示什么?并非所有提交都是分支提示。
CB Bailey 2013年

9
@noli git仅在分支的最新提交(提示)中存储分支名称。历史记录中的所有提交都是平等且匿名的。如果要命名分支,以便每个提交都带有分支名称,则可以使用Mercurial。
Sampo Smolander

7
@CharlesBailey:我喜欢带的裁判的颜色git log --graph --all --oneline --decorate。我有一个别名git graph使用--pretty(也为了显示其他内容,例如作者和日期),但是%d没有给我颜色--decorate。我现在用的黄色为我所有的裁判的,你知道我怎么才能让--pretty%d字符串继承的颜色--decorate
Gauthier

3
@Gauthier如果要使用--pretty格式的默认颜色,请%C(auto)在元素之前添加应该上色的颜色。例如git log --pretty=format:"%cd %h %cn %s %C(auto)%d"
Radon8472

7

我一直在寻找与此类似的东西-但想知道所做的更改是在哪个分支上进行的。希望这个答案对其他人也有用。

我正在调查blackbox加密的风险,如果有admins足够多的用户离开项目,并且keyrings目录不是基于主目录的,则当前可能无法使用repo及其分支/标签。

我发现下面的答案对keyrings没有从主目录更新目录的情况很有帮助...

基本上添加--source就是我需要显示分支/标签的地方。添加--name-only还将显示实际更改了哪个文件。

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

另一个有用的答案:如何显示带有分支名称的git log


对我来说,--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命令,该命令可以作为glggaoh-my-zsh中的别名使用。

我个人更喜欢将glods别名转换为:

git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.