修改时更新 git commit 作者日期

问题描述 投票:0回答:6

我发现自己经常修改我的承诺。我不那么

stash
,因为我往往会忘记我这样做了,特别是当我想保存我离开之前或周末之前所做的事情时,所以我做了一个“草稿”提交。唯一的问题是,当我修改提交时,它仍然设置为原始作者日期。修改时有没有(简单)的方法来更新它?

git
6个回答
459
投票

您可以使用

--date
参数将作者日期更改为
git commit
。因此,如果您想修改最后一次提交,并将其作者日期更新为当前日期和时间,您可以这样做:

git commit --amend --date="$(date -R)"

-R
date
参数告诉它以RFC 2822格式输出日期。这是git commit
理解的
日期格式之一。)


428
投票

Git v2.1.4 起(在 Debian 8 (Jessie) 上测试)

git commit --amend --date=now --no-edit

--ammend
:编辑上次提交

--date=now
:将日期设置为当前日期

--no-edit
:不要编辑提交消息


317
投票

另一种方法是

git commit --amend --reset-author

这确实会更改提交作者以及日期 - 但如果它最初是您未推送的提交,那么这是一个无操作。

如果您想更新多次提交的日期,但希望提交消息保持不变,您也可以添加

--no-edit
。这样,系统就不会提示您编辑每次提交的消息。


24
投票

我喜欢马克的回答,并且自己使用过几次,但现在我在 OS X 上并且不支持

date -R
。但一切都比原来的答案让我们想象的要容易得多,只需使用空字符串

git commit --date= --amend

更新:

你也可以尝试一下

git commit --date="$(date)" --amend

或者在新版本的 git 中

git commit --date=now --amend

4
投票

如果有人仍在寻找一种简单的方法来更改多个提交的日期,我创建了这个 npm 包。

https://github.com/bitriddler/git-change-date

用途:

npm install -g git-change-date
cd [your-directory]
git-change-date

2
投票

提交有两个日期

  • 作者日期记录最初提交的时间;可以使用
    --date
    命令行参数
  • 指定
  • 每次修改提交时,提交日期都会更新;可以使用
    GIT_COMMITTER_DATE
    环境变量
  • 来指定

要更改两者,您可以执行以下操作:

GIT_COMMITTER_DATE="$(date)" git commit --amend --no-edit --date "$(date)"
© www.soinside.com 2019 - 2024. All rights reserved.