有没有任何占位符显示提交的分支名称是git --pretty=format
(在git log和git show中)?
像提交哈希的%H
一样?
答案 0 :(得分:8)
添加git log --decorate
,它将显示分支,标签等。
--graph
.githelpers
从日志文档:
- 装饰 [=短|完整|否]
打印出所有提交的引用名称。如果指定了short,则不会打印引用名称前缀refs / heads /,refs / tags /和refs / remotes /。如果指定full,则将打印完整的ref名称(包括前缀)。默认选项为短
答案 1 :(得分:1)
提交不在分支中,分支只是挂在特定提交上的repo-local标签。例如,大多数项目只有一个根,每个分支都追溯到那个。如果任何一个分支是你的“主要”分支,那么Git可能并不在乎,这完全是一个解释问题。
你可以
git branch --contains $thatcommit
查看可以跟踪该提交的祖先的所有分支,以及
git log --branches --decorate --simplify-by-decoration --oneline \
--ancestry-path --first-parent ^$thatcommit
通过他们的第一个父链接查看跟踪祖先到该提交的所有分支(即不是仅通过合并包含该提交的分支)。
编辑:说“分支”真的很容易,但对于新手来说,很难记住你在git中使用的每个名字都以非常短的顺序追溯到对象db中的其他无差别的对象 - 一个refname只是一个方便的拇指进入回购。更迂腐正确的是“分支提示”甚至“分支提示”。
关于分支引用的唯一特别之处是它的完整拼写是“refs / heads / $ branchname”,当git checkout
看到它时,它使HEAD
成为一个象征性的引用那个 - 所以更新head
的所有人都会更新分支提示,并且每个查看HEAD
的人都会看到当前的分支提示。
您可以在分支引用上挂起repo-local notes,有几个便利命令在branch.$branchname
config section中查找其默认值。
答案 2 :(得分:0)
使用--source
标志。
来自文档:
<强> - 来源
打印出在每次提交时通过命令行给出的引用名称。
答案 3 :(得分:0)
您现在(2019年第一季度)拥有一个官方占位符,因为自定义用户格式“ log --format
”学到了%S
原子,代表了遍历到达的提交点,即--source
。
请参见commit ad6f028的Issac Trotts (ijt
)(2019年1月11日)。
(由Junio C Hamano -- gitster
--在commit a562a11中合并,2019年1月29日)
log
:将%S选项(如--source
)添加到log --format
可以编写例如:
git log --format="%H,%S"
,最后的
%S
是一个新占位符,可打印出参考 (tag/branch
)。使用
%d
似乎是一种替代方法,但它仅显示最后一个参考 提交分支。
示例:
git checkout --orphan source-a && test_commit one && test_commit two && git checkout -b source-b HEAD^ && test_commit three
表示git log --format=%S source-a source-b
返回commits from a
and b
:
source-b source-a source-b