我怎样才能在git log
的输出中显示分支名称?
例如,使用git log --graph --all
,我可以获得一个漂亮的提交概述,但我很困惑哪条线是主分支,哪条是我的分支。
我怎样才能在git log
的输出中显示分支名称?
例如,使用git log --graph --all
,我可以获得一个漂亮的提交概述,但我很困惑哪条线是主分支,哪条是我的分支。
尝试使用decorate选项。
git log --graph --all --decorate
它会注释那些被标签或分支所指向的提交。
--pretty
参数时,您可以在想要“装饰”的地方使用 %d
。 - CB Baileygit log --graph --all --oneline --decorate
命令显示的参考颜色。我有一个别名git graph
,它使用了--pretty
选项(为了显示其他信息,比如作者和日期),但是在%d
选项中没有显示出--decorate
的颜色。目前我将所有的参考都显示为黄色,你知道怎样让--pretty
的%d
字符串继承--decorate
的颜色吗? - Gauthiergit log --pretty=format:"%cd %h %cn %s %C(auto)%d"
。 - Radon8472我正在寻找类似的东西 - 但是想知道更改是在哪个分支上进行的。希望这个答案对其他人也有用。
我正在调查使用 blackbox
加密时的风险,当足够多的用户离开一个项目并且 keyrings
目录没有以 master 为基础进行更新时,该仓库及其分支/标签可能会对当前的管理员不可用。
我发现下面的答案很有帮助,当 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--branches --remotes=<pattern>
来过滤分支,而不是使用 --all
。但是,一旦两个分支合并在一起,Git 就不再具有提交时的信息。 - vinc17git 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
这是一篇旧文章,但发布的答案实际上并没有显示每个提交的分支名称 - 它们只显示最近提交的分支名称。要列出每个提交的分支名称,请使用git show-branch
命令。例如:
$ git show-branch --all --more
! [Branch_Feature_1] Commit Msg: Feature_1, Commit #1
! [Branch_Feature_2] Commit Msg: Feature_2, Commit #2
! [Branch_Feature_3] Commit Msg: Feature_3, Commit #1
* [master] Merge branch 'Branch_Feature_3' Commit Msg: Merge Master Commit #2 + Feature_3
----
- [master] Merge branch 'Branch_Feature_3' Commit Msg: Merge Master Commit #2 + Feature_3
+* [Branch_Feature_3] Commit Msg: Feature_3, Commit #1
* [master^] Commit Msg: Master, Commit #2
++* [Branch_Feature_2] Commit Msg: Feature_2, Commit #2
++* [Branch_Feature_2^] Commit Msg: Feature_2, Commit #1
+++* [Branch_Feature_1] Commit Msg: Feature_1, Commit #1
+++* [Branch_Feature_1^] Master_Commit_Msg: Original file
git log
输出进行比较:git log --oneline --graph --all --parents
* 2d142e7 fd4f402 9eb9513 (master) Merge branch 'Branch_Feature_3' Commit Msg: Merge Master Commit #2 + Feature_3
|\
| * 9eb9513 c9bb4db (HEAD -> Branch_Feature_3) Commit Msg: Feature_3, Commit #1
* | fd4f402 c9bb4db Commit Msg: Master, Commit #2
|/
* c9bb4db a470d38 (Branch_Feature_2) Commit Msg: Feature_2, Commit #2
* a470d38 f3fde4d Commit Msg: Feature_2, Commit #1
* f3fde4d 81753a3 (Branch_Feature_1) Commit Msg: Feature_1, Commit #1
* 81753a3 Master_Commit_Msg: Original file
git log
仅显示每个分支当前HEAD上的提交的分支名称。树形符号用于指示哪些提交在哪些分支上,但我发现git show-branch
输出更好地显示了它们之间的关系。--sha1-name
:! [Branch_Feature_1] Commit Msg: Feature_1, Commit #1
! [Branch_Feature_2] Commit Msg: Feature_2, Commit #2
* [Branch_Feature_3] Commit Msg: Feature_3, Commit #1
! [master] Merge branch 'Branch_Feature_3' Commit Msg: Merge Master Commit #2 + Feature_3
----
- [2d142e7] Merge branch 'Branch_Feature_3' Commit Msg: Merge Master Commit #2 + Feature_3
*+ [9eb9513] Commit Msg: Feature_3, Commit #1
+ [fd4f402] Commit Msg: Master, Commit #2
+*+ [c9bb4db] Commit Msg: Feature_2, Commit #2
+*+ [a470d38] Commit Msg: Feature_2, Commit #1
++*+ [f3fde4d] Commit Msg: Feature_1, Commit #1
git log --decorate --oneline --pretty='%h refs: %d message:%s'
git
更新。 - underscore_d