我发现自己经常修改我的承诺。我不那么
stash
,因为我往往会忘记我这样做了,特别是当我想保存我离开之前或周末之前所做的事情时,所以我做了一个“草稿”提交。唯一的问题是,当我修改提交时,它仍然设置为原始作者日期。修改时有没有(简单)的方法来更新它?
您可以使用
--date
参数将作者日期更改为 git commit
。因此,如果您想修改最后一次提交,并将其作者日期更新为当前日期和时间,您可以这样做:
git commit --amend --date="$(date -R)"
(
-R
的date
参数告诉它以RFC 2822格式输出日期。这是git commit
理解的日期格式之一。)
Git v2.1.4 起(在 Debian 8 (Jessie) 上测试)
git commit --amend --date=now --no-edit
--ammend
:编辑上次提交
--date=now
:将日期设置为当前日期
--no-edit
:不要编辑提交消息
另一种方法是
git commit --amend --reset-author
这确实会更改提交作者以及日期 - 但如果它最初是您未推送的提交,那么这是一个无操作。
如果您想更新多次提交的日期,但希望提交消息保持不变,您也可以添加
--no-edit
。这样,系统就不会提示您编辑每次提交的消息。
我喜欢马克的回答,并且自己使用过几次,但现在我在 OS X 上并且不支持
date -R
。但一切都比原来的答案让我们想象的要容易得多,只需使用空字符串!
git commit --date= --amend
更新:
你也可以尝试一下
git commit --date="$(date)" --amend
或者在新版本的 git 中
git commit --date=now --amend
如果有人仍在寻找一种简单的方法来更改多个提交的日期,我创建了这个 npm 包。
https://github.com/bitriddler/git-change-date
用途:
npm install -g git-change-date
cd [your-directory]
git-change-date
提交有两个日期
--date
命令行参数GIT_COMMITTER_DATE
环境变量要更改两者,您可以执行以下操作:
GIT_COMMITTER_DATE="$(date)" git commit --amend --no-edit --date "$(date)"