Git设置任意的提交时间
修改Git中提交的时间戳。
# 查看日志时间 %ad:作者的日期; %cd 提交者日期
git log --pretty=format:"%h %an %ad %cd %s" --date=iso
# git log --format=fuller --date=iso
# 这个只修改了作者日期,没有修改了提交者日期;
git commit -m "Update" --date=format:relative:7.hours.ago
git commit -m "Update" --date="Feb 16 12:30 2021 +0100"
# 提交者日期需要设置环境变量:GIT_COMMITTER_DATE
# now=$(date -v-7d "+%Y-%m-%d %T %z") # BSD/macos
now=$(date -d "10 days ago" "+%Y-%m-%d %T %z") # GNU/linux
GIT_AUTHOR_DATE=$now GIT_COMMITTER_DATE=$now git commit -m 'Commit'
GIT_COMMITTER_DATE=$now git commit -m 'Commit' -date=$now
- 修改最近一次提交
--amend
# --amend 修改最近一次;指定时间,其中时区省略就是默认系统时区
dt="2023-02-16 12:30:33"
GIT_COMMITTER_DATE=$dt git commit --amend --no-edit --date=$dt
# 使用最新时间
git commit --amend --date="now"
git commit --amend # now可以省略
- 修改更早的历史提交
git rebase
git rebase -i HEAD~6
# 对需要修改的提交 pick 替换为 edit
dt="" # 配置
GIT_COMMITTER_DATE=$dt git commit --amend --date=$dt
git rebase --continue
- 其他方式:
git filter-branch
参考: