Git提交推送时如何保留文件的修改日期
解决方案
Git提交包含两个关键日期:AuthorDate(内容创作/文件修改的时间)和CommitDate(提交到仓库的时间),远程仓库默认展示的是AuthorDate。要让远程显示文件的修改日期2/10/2022,需要修改这两个日期(至少AuthorDate)。
针对你已提交的情况(修改现有commit)
你已经完成了commit,需要修改这个commit的日期:
- 在Windows命令行中设置环境变量(Git支持
YYYY-MM-DD、MM/DD/YYYY、Month Day Year等格式):
set GIT_AUTHOR_DATE=2022-02-10 set GIT_COMMITTER_DATE=2022-02-10
- 用
--amend修改最近的commit,保留原有提交信息:
git commit --amend --no-edit
- 验证日期是否修改成功:
git log --format=fuller
此时你会看到AuthorDate和CommitDate都变为2022-02-10。
- 推送到远程仓库:
git push origin master
未提交时的提前设置(预防方案)
如果还没执行commit,可以直接在提交时指定日期:
set GIT_AUTHOR_DATE=2022-02-10 set GIT_COMMITTER_DATE=2022-02-10 git commit -m "testing first push"
补充说明
- 日期格式可以灵活调整,比如
Feb 10 2022、2/10/2022 14:30:00(带具体时间)都能被Git识别。 - 若需要更精确的时间,可将文件修改时间转换成Unix时间戳(比如2/10/2022 00:00:00的Unix时间戳是1644432000),直接用数字设置:
set GIT_AUTHOR_DATE=1644432000
内容的提问来源于stack exchange,提问作者Joe_12345
相关产品推荐
相关产品推荐

