You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何查看Git分支中变更的纳入时间?

当然有办法!针对你想要追踪变更实际被集成到目标分支的时间(不管是直接推送还是从其他分支合并过来)的需求,我整理了几个实用的Git技巧,完全匹配你的要求:

方法1:用git log --first-parent追踪分支主线的集成记录

这是最直接的方式,--first-parent参数会让Git只追踪目标分支的主线历史——也就是忽略合并进来的分支里的所有提交,只显示目标分支上的提交(包括合并提交)。这样你看到的每个条目对应的时间,就是变更被纳入该分支的时间:

  • 直接推送到目标分支的提交:显示的是该提交的提交时间(也就是被推送到分支的时间)
  • 从其他分支合并过来的变更:显示的是合并提交的时间(也就是变更被合并到目标分支的时间)

执行命令:

git log --first-parent --pretty="%ci %h %s" <目标分支名>

参数说明:

  • %ci:显示提交的时间(精确到秒,格式如2024-05-20 14:30:00 +0800
  • %h:显示提交的短哈希值(方便快速定位)
  • %s:显示提交的主题信息

如果需要筛选指定时间范围的记录,加上--since--until参数即可:

git log --first-parent --since="2024-05-01" --until="2024-05-10" --pretty="%ci %h %s" main
方法2:定位特定提交的集成时间

如果想知道某一个具体的提交是何时被合并/推送到目标分支的,可以用以下步骤:

  1. 先确认该提交是否存在于目标分支:
git branch --contains <提交哈希>
  1. 找到该提交对应的合并记录(如果是从其他分支合并过来的):
git log --merges --grep=<提交哈希> <目标分支名>

或者用图形化的方式查看分支合并历史,更直观:

git log --oneline --graph --first-parent <目标分支名> -- <文件路径>

加上<文件路径>可以只查看该文件相关的变更集成记录,精准定位问题。

方法3:查看远程分支的最新集成记录

如果你需要查看远程分支的情况(避免本地分支未同步),先拉取最新的远程数据,再执行命令:

git fetch origin
git log --first-parent origin/<目标分支名> --pretty="%ci %h %s"

这些方法完全避开了本地提交日期和其他无关分支的推送时间,只聚焦于变更进入目标分支的时间点,非常适合用来快速排查指定时间范围内导致集成测试失败的变更。

内容的提问来源于stack exchange,提问作者Travis Bruce

火山引擎 最新活动