3

我正在尝试改进我的自定义 git 日志格式字符串。除了参考名称之外,我几乎拥有我想要的一切。我已经可以得到一个类似于我想要的日志:

> git log --all --source --pretty=oneline --graph

* b7c7ad3855b54e94ad7ac03f2d2e5b96d6e5ac1d      refs/heads/b1 na
| *   695e1482622a79230fa1d83afb8d70e86847334a  refs/heads/master Merge branch 'b1'
| |\  
| |/  
|/|   
* | ec21f370f82096c0208f43b390da234d92e8c74a    refs/heads/b1 beta
* | c6bc1f55ab3b1bd568493a5de4298dfcb4f66d8d    refs/heads/b1 alfa
* | 762dd868ae87753afc1cbf9803744c76f9a9e121    refs/heads/b1 tango
| * 57fb27bff06ee9bb569f93ba815e9dcd69521c13    refs/heads/master little last post commit
|/  
| * 8d613d09b43152a7263b6e02d47ec8a4304f54be    refs/heads/b3 the other commit
| * e1f32b7cb86633351df06e37c2c58ef3f9fafc40    refs/heads/b3 something
|/  
| * 01b5c6728cf25dd576733211ce75dd3ecc29c7ba    refs/heads/b2 this time a

我正在努力使用我自己的格式字符串获得自定义输出,如下所示:

>  git log --pretty=format:'%h - %gD %s' --source -g        
b7c7ad3 - HEAD@{0} na
ec21f37 - HEAD@{1} beta
01b5c67 - HEAD@{2} this time a
01b5c67 - HEAD@{3} this time a
695e148 - HEAD@{4} Merge branch 'b1'
57fb27b - HEAD@{5} little last post commit

我的主要问题是我无法获得我想要的参考名称。我认为它是 %g? 格式字符串,但它们似乎都没有给我完整的参考名称。

另一个问题是 %g? 除非我走 reflogs (-g),否则格式字符串是空的。但是 git 拒绝将 --graph 与 -g 结合使用

如何使用我可以进一步自定义的格式字符串重现第一个样本?

4

1 回答 1

0

这是可能的。只需使用%d并提供--decorate=full

$ git log --pretty=format:'%h %d'
bde5d58  (HEAD, origin/master, master)
dd4446d 
1eeab2a 
...

$ git log --decorate=full --pretty=format:'%h %d'
bde5d58  (HEAD, refs/remotes/origin/master, refs/heads/master)
dd4446d 
1eeab2a 
...
于 2012-12-06T17:10:22.787 回答