Skip to content

Git 提交时间设置指南

摘要

本文介绍了如何在 Git 仓库中创建一个指定时间的提交,并验证提交时间是否正确。通过设置提交的作者日期(GIT_AUTHOR_DATE)和提交者日期(GIT_COMMITTER_DATE),可以精确控制提交的时间戳。

创建指定时间的 Git 提交

初始化 Git 仓库(如果尚未初始化)

git init

添加文件并准备提交

echo "Hello World" > README.md
git add README.md

设置精确的提交时间并创建提交

使用环境变量设置提交时间:

GIT_AUTHOR_DATE="2025-05-20T00:00:00 +0800" \
GIT_COMMITTER_DATE="2025-05-20T00:00:00 +0800" \
git commit -m "初始化提交"

注意+0800 表示东八区(中国标准时间)。根据您所在的时区调整此偏移量。例如,洛杉矶的时区为太平洋夏令时(PDT),对应的偏移量是 -0700。因此,若您在洛杉矶,命令应为:

GIT_AUTHOR_DATE="2025-05-20T00:00:00 -0700" \
GIT_COMMITTER_DATE="2025-05-20T00:00:00 -0700" \
git commit -m "初始化提交"

这将确保提交时间为 2025 年 5 月 20 日 00:00:00 PDT。

验证提交时间

使用以下命令查看提交的详细信息,确保时间设置正确:

git show --pretty=fuller

输出示例:

AuthorDate: Tue May 20 00:00:00 2025 -0700
CommitDate: Tue May 20 00:00:00 2025 -0700

注意事项

  • 时间格式:Git 接受多种时间格式,包括 ISO 8601(如 YYYY-MM-DDTHH:MM:SS)和 RFC 2822(如 Tue, 20 May 2025 00:00:00 -0700)。确保使用 Git 支持的格式。
  • 时区设置:提交时间应包含正确的时区偏移量,以确保在不同地区查看时显示一致的时间。
  • 历史记录完整性:修改提交时间不会影响提交的内容,但在协作开发中应谨慎使用,以避免混淆团队成员。

自动推送提交

如果您需要在未来的特定时间自动推送该提交,可以使用操作系统的任务调度工具(如 Linux 的 cron 或 Windows 的任务计划程序)来安排 git push 命令的执行。这样可以确保提交在预定时间被推送到远程仓库。

Ref

https://arxiv.org/abs/2208.11356 https://blog.csdn.net/ADICDFHL/article/details/131918665 https://geonu-lee.github.io/posts/IMFA/