やりかた
一時的な作業内容の保存を 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