You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何确定Git提交被推送到远程分支(如origin/master)的时间?

如何获取Git提交被合并/快进到远程分支的时间

我完全懂你的需求——Git默认的提交时间戳是本地生成时的时间,但你要的是提交被合并或快进到远程分支的实际时间,之前用git reflog origin/master --date=local的思路方向没问题,但默认输出确实缺了完整的作者信息,覆盖场景也有限。下面给你几个更完善的解决方案:

方法1:自定义远程分支reflog输出,补全作者信息

你之前的命令可以通过添加自定义格式,同时拿到远程分支更新时间和完整提交详情:

git reflog show origin/master --date=local --pretty=format:'%h %ad | %an <%ae> | %s'

这个命令的输出会包含:

  • %h:短提交哈希
  • %ad:你指定的本地时区时间(也就是该提交被合并/快进到远程分支的时间)
  • %an <%ae>:提交作者的姓名和邮箱
  • %s:提交信息

示例输出大概是这样:

abc1234 2024-05-20 14:30:00 | John Doe <john@example.com> | Fix login validation bug
def4567 2024-05-19 09:15:00 | Jane Smith <jane@example.com> | Add user profile editing feature

方法2:查看远程分支的完整更新事件记录

如果需要更清晰地分辨远程分支的更新类型(比如快进、合并、fetch同步),可以用带reflog参数的git log命令:

git log -g --abbrev-commit --pretty=format:'%h %ad | %s | %d' --date=iso origin/master

这里的-g参数表示查看引用日志(reflog),输出会明确标记每次远程分支的更新事件,比如fetch origin: fast-forward,帮你快速区分操作类型。

方法3:批量获取所有远程分支的最后更新时间

如果需要追踪多个远程分支的更新状态,可以用git for-each-ref批量输出:

git for-each-ref --format='%(refname:short) | %(committerdate:iso) | %(objectname:short) | %(subject)' refs/remotes/origin/

这个命令会列出所有远程分支的名称、最后更新时间、对应提交哈希和提交主题,方便快速定位特定分支的更新记录。

重要提示

  • 执行以上命令前,建议先运行git fetch origin同步最新的远程分支引用,确保你查看的是远程仓库的最新状态。
  • 本地的远程分支reflog记录,是你本地对远程分支的引用变更历史,如果需要远程服务器上的原始合并时间,可能需要依托仓库管理工具的后台日志(但这里只提供本地可执行的Git命令方案)。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:28:08