如何查看Git推送时间?git lg仅显示提交时间无法满足需求
查看Git推送时间的方法
Git本身不会默认记录推送操作的时间(推送是本地仓库与远程仓库的交互动作,不属于提交对象的元数据),git lg这类日志命令只能显示提交的创建/修改时间,无法直接获取推送时间。以下是几种可行的解决方案:
1. 通过远程托管平台查看(最直接)
如果你的代码托管在GitHub、GitLab、Gitee这类平台上:
- 进入仓库的「Commits」页面,每个提交条目旁会显示该提交被推送到当前分支的时间,包括其他协作者的推送记录。
- 部分平台还支持在分支页面查看分支的更新时间,间接反映最近一次推送的时间。
2. 本地自定义记录推送时间
如果需要在本地追踪推送时间,可以通过Git钩子实现自动记录:
- 在本地仓库的
.git/hooks/目录下创建post-push文件(无后缀),写入以下内容:#!/bin/bash # 记录推送时间、目标远程仓库和分支 REMOTE="$1" BRANCH="$2" TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S %Z') echo "[$TIMESTAMP] Pushed to $REMOTE/$BRANCH" >> .git/push-history.log - 给钩子添加执行权限:
chmod +x .git/hooks/post-push - 之后每次推送后,推送记录会自动写入
.git/push-history.log,查看时直接执行:
注意:这个方法只能记录本地发起的推送,无法获取他人的推送时间。cat .git/push-history.log
3. 区分提交时间与推送时间
git lg(通常是git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit的别名)显示的是提交的作者时间(author date)或提交者时间(committer date),这两个时间是提交创建时的时间,和推送时间没有直接关联。- 若要确认某个提交是否已推送到远程,可使用:
# 查看本地分支比远程分支多的提交(未推送) git log --oneline origin/<分支名>..<本地分支名> # 查看远程分支比本地分支多的提交(他人推送的未拉取) git log --oneline <本地分支名>..origin/<分支名>
内容的提问来源于stack exchange,提问作者user21044780
相关产品推荐
相关产品推荐

