我经常修改我的提交记录,因为我不太使用stash
命令,特别是当我在离开之前或周末之前想要保存我的工作时,我会忘记这么做,所以我会进行一次“草稿”提交。但问题是,当我修改提交记录后,它仍然设置为原始作者的时间。有没有(简单的)方法在修改提交记录时更新时间?
我经常修改我的提交记录,因为我不太使用stash
命令,特别是当我在离开之前或周末之前想要保存我的工作时,我会忘记这么做,所以我会进行一次“草稿”提交。但问题是,当我修改提交记录后,它仍然设置为原始作者的时间。有没有(简单的)方法在修改提交记录时更新时间?
您可以使用--date
参数来更改git提交的作者日期。因此,如果您想修改最后一次提交,并将其作者日期更新为当前日期和时间,则可以执行以下操作:
git commit --amend --date="$(date -R)"
(date
的-R
参数告诉它以RFC 2822格式输出日期。这是git commit
理解的其中一种日期格式。)
date
命令似乎不支持-R
选项。不过,即使不带选项使用date
命令也能完成任务。 - ksol!
并转义引号,例如:can = !git commit --amend --date=\"$(date -R)\"
。 - Fabian Steegdate -R
无法使用,请改用date +%s
。 - stashgit commit --amend --date="$(date +%s)"
- Derecksongit commit --amend --date=now
可以使用,不需要使用 date(1) 命令来调用子shell。你可以在 git(1) 的源代码 date.c 中查看。'now' 是一个特殊值,会使用 date_now() 函数来转换。同理,'noon', 'yesterday', 'midnight', 'tea' 等在 special[] 结构数组中列出的值也一样。 - sbz截至Git v2.1.4(在Debian 8(Jessie)上测试过)
git commit --amend --date=now
--no-edit
。 - Henrik N另一种方法是
git commit --amend --reset-author
这会更改提交者和日期,但如果最初是您未推送的提交,则不会执行任何操作。
如果您想在多个提交上更新日期但保留提交消息不变,您还可以添加--no-edit
选项。这样,您就不会被提示为每个提交编辑消息。
git commit --amend --reset-author --no-edit
翻译:这是一个Git命令,用于修改最近一次提交的作者信息,并保持提交消息不变。具体操作为在终端中输入指令 git commit --amend --reset-author --no-edit
。 - AgentRev我很喜欢Mark的回答,自己也用了好几次,但现在我在OS X上,date -R
不支持。但其实比原来的答案想象的要简单得多,只需要使用空字符串。
git commit --date= --amend
更新:
你也可以尝试
git commit --date="$(date)" --amend
或者在新版本的git中
git commit --date=now --amend
--date="$(date)"
。选项 -R
是 GNUism。 - Rudá Moura如果有人仍在寻找一种简单的方法来更改多个提交的日期,我创建了这个npm软件包。
https://github.com/bitriddler/git-change-date
使用方法:
npm install -g git-change-date
cd [your-directory]
git-change-date
npm
包。@Urda,如果自动化可以改善工作流程,为什么要阻止人们使用这种解决方案呢? - Llama D'Attore--date
命令行参数来指定。GIT_COMMITTER_DATE
环境变量来指定。GIT_COMMITTER_DATE="$(date)" git commit --amend --no-edit --date "$(date)"