分支的Git日志占位符

时间:2015-06-02 06:49:02

标签: git

有没有任何占位符显示提交的分支名称是git --pretty=format(在git log和git show中)?

像提交哈希的%H一样?

4 个答案:

答案 0 :(得分:8)

添加git log --decorate,它将显示分支,标签等。

  • 如果您想要记录以显示图表,您可以添加--graph
  • 如果您使用基于uxin的操作系统,则可以使用此.githelpers

从日志文档:

  

- 装饰 [=短|完整|否]

     

打印出所有提交的引用名称。如果指定了short,则不会打印引用名称前缀refs / heads /,refs / tags /和refs / remotes /。如果指定full,则将打印完整的ref名称(包括前缀)。默认选项为短

.githelprs脚本的输出:

enter image description here

答案 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 ad6f028Issac 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