Help us understand the problem. What is going on with this article?

git commit --amend で今の日時にしてcommitし直す

More than 5 years have passed since last update.

やりかた

一時的な作業内容の保存を git commit -m 'tmp' などとしたり git-now を使ってとりあえずcommitすると思います。
その後コミットメッセージを変えたりするときに git commit --amend をしますが、--amend ではcommit dateは変化しますがauthor dateは変化しません。

% git commit
[master 824662c] hoge
 Date: Sat Nov 8 22:25:44 2014 +0900
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 foo
% date
Sat Nov  8 22:33:02 JST 2014
% git commit --amend
[master 2a545e7] hoge
 Date: Sat Nov 8 22:25:44 2014 +0900
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 foo

そこで、--date オプションを使うとauthor dateが設定できます。date コマンドの出力を値にすると今の日時がauthor dateになります。

% date                              
Sat Nov  8 22:34:57 JST 2014
% git commit --amend --date "`date`"
[master 2df83ad] hoge
 Date: Sat Nov 8 22:34:58 2014 +0900
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 foo

ちなみに、Stack Overflowに date -R を使ういいと書いてありました。
Update git commit author date when amending - Stack Overflow
GNU coreutilsのdateには -R オプションがあり、これはRFC形式で日時を出力してくれるものです。

% date -R
Sat, 08 Nov 2014 22:42:53 +0900

OS Xのdate(というよりはBSDの)には、-R オプションがありません。試しにつけずにやってみると、動いたのでこのままでよさそうです。

あわせて読みたい

Git のコミットのタイムスタンプには author date と committer date の 2 種類があるという話 - ひだまりソケットは壊れない
よく使うgit command - Qiita

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away