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

vdb*_*oor 205 git

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

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

CB *_*ley 312

尝试装饰选项.

git log --graph --all --decorate
Run Code Online (Sandbox Code Playgroud)

它注释标记或分支指向的提交.

  • 使用`--pretty`,您可以在需要"装饰"的地方使用`%d`. (41认同)
  • @noli git仅在最近的分支提交(提示)中存储分支名称.历史上所有提交都是平等和匿名的.如果您想要命名分支以便每个提交都带有分支名称,则可以使用Mercurial. (8认同)
  • @CharlesBailey:我喜欢使用`git log --graph --all --oneline --decorate`的refs的颜色.我有一个别名`git graph`,它使用`--pretty`(为了显示其他东西,比如作者和日期),但`%d`没有给我`--decorate`的颜色.我现在所有的ref都用黄色,你知道我怎么能让`--pretty`的'%d`字符串继承`--decorate`的颜色吗? (7认同)
  • @noli:你期待它展示什么?并非所有提交都是分支提示. (4认同)
  • @Gauthier如果您希望以`--pretty`格式使用默认颜色,请在元素之前添加`%C(auto)`.例如`git log --pretty = format:"%cd%h%cn%s%C(auto)%d"` (3认同)
  • 但是,它不与`--pretty = format`选项叠加. (2认同)
  • 我很困惑..这就是我想要的一些提交(显示提交的分支)但是对于许多提交,它根本不显示分支名称.任何人都知道为什么会这样吗? (2认同)
  • 感谢回应查尔斯,也许我对"分支提示"的含义感到困惑?现在,我总是创建一个分支来完成我的工作,有时我想查看日志以查看在给定分支上完成的所有提交(因此我可以轻松地看到所有相关的功能更改).我希望在日志中看到所有提交的分支名称,但我只在其中一些中看到它 (2认同)
  • @CharlesBailey实际上每次提交显示此信息也正是我想要的.让我们假设我有两个分支的共同基础.通常我做一些代码审查,我想看看哪些提交也在另一个分支上,而没有显示完整的历史记录(只有这个分支的历史) (2认同)

And*_*rol 10

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

我正在调查blackbox加密的风险,admins当足够多的用户离开项目并且keyrings目录没有严格基于 master时,repo 及其分支/标签可能变得不可用)

我发现下面的答案在keyrings目录未从 master 更新的情况下很有帮助...

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

cd /path/to/repo-that-uses-blackbox-encryption
git log --graph --all --decorate --source --name-only keyrings
Run Code Online (Sandbox Code Playgroud)

另一个有用的答案:How to show git log with branch name


小智 7

如果您碰巧使用 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
Run Code Online (Sandbox Code Playgroud)