2016-06-14 106 views
1

我想获得特定提交合并到主时间的时间戳。Git - 获取基于提交ID的合并时间戳

当我做git log时,它显示了作者的时间戳,即第一次创建提交时的时间戳。

我也可以看到提交者时间戳,即上次更新提交时的时间戳。但是当提交合并到主服务器上时,我看不到时间戳。 (这与基于代码评论的提交者时间戳或上次提交后可能发生的任何其他延迟不同)。

是否git甚至在任何地方存储merge-timestamp或者它不可能?

我尝试:

我尝试使用git show <commitid> --stat但这也只显示作者的时间戳。

其次,我没有git log --format=fuller这个报名如下:

Author:  abc 
AuthorDate: Mon Jun 13 12:27:59 2016 -0500 
Commit:  abc 
CommitDate: Mon Jun 13 14:32:21 2016 -0500 

时提交的痕迹没有真正合并。

+0

@PetSerAl你为什么要包括'--all' ?这个问题只是要求知道它何时合并为主。另外,'--topo-order'似乎无关紧要,因为'--ancestry-path'无论如何都只会显示一行血统。最后,'--reverse'与'-n 1'组合时将不起作用,因为反转仅在结果集限制为1之后应用。 –

回答

1

做一个别名(随意使用自己的别名):

git config --global alias.merge-commit '!f(){ for r in $(git rev-list ${2:-HEAD} --first-parent); do ! git merge-base --is-ancestor $1 $r && git rev-list --first-parent $r..${2:-HEAD} --reverse | head -1 | git log --stdin -1 ${*:3} && break; done; }; f' 

实例应用:(默认为HEAD)

git merge-commit commit 
git merge-commit commit another-branch 
git merge-commit commit another-branch --format=fuller