为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Git中更改旧提交的时间戳?

如何在Git中更改旧提交的时间戳?

Git
手掌心 2019-07-05 16:31:43
如何在Git中更改旧提交的时间戳?对.的答案如何修改现有的未推送提交?描述一种修改尚未被上游推送的以前提交消息的方法。新消息继承原始提交的时间戳。这似乎合乎逻辑,但有没有办法也重新设定时代?
查看完整描述

3 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

使用git filter-branch使用env过滤器设置GIT_AUTHOR_DATEGIT_COMMITTER_DATE对于要修复的提交的特定散列,请执行以下操作。

这将使这个和所有未来的哈希无效。

例子:

如果您想更改日期承诺119f9ecf58069b265ab22f1f97d2b648faf932e0,你可以这样做:

git filter-branch --env-filter \
    'if [ $GIT_COMMIT = 119f9ecf58069b265ab22f1f97d2b648faf932e0 ]
     then
         export GIT_AUTHOR_DATE="Fri Jan 2 21:38:53 2009 -0800"
         export GIT_COMMITTER_DATE="Sat May 19 01:01:01 2007 -0700"
     fi'


查看完整回答
反对 回复 2019-07-05
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞


在一个命令中处理所有这些建议的更好方法是

LC_ALL=C GIT_COMMITTER_DATE="$(date)" git commit --amend --no-edit --date "$(date)"

这将最后一次提交的提交和作者日期设置为“立即”。


查看完整回答
反对 回复 2019-07-05
?
炎炎设计

TA贡献1808条经验 获得超4个赞

您可以进行交互式重基并选择编辑你想更改的日期。例如,当重基进程停止以修改提交时,输入:

git commit --amend --date="Wed Feb 16 14:00 2011 +0100"

之后,您将继续您的交互式重基。

更新(响应Studgeek的评论):更改提交日期而不是作者日期:

GIT_COMMITTER_DATE="Wed Feb 16 14:00 2011 +0100" git commit --amend

上面的行设置了一个环境变量git_贡献者_date,用于修改提交。

所有的测试都是在Git Bash中进行的。


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 4095 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信