LoginSignup
56
38

More than 5 years have passed since last update.

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

Last updated at Posted at 2014-11-08

やりかた

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

56
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
56
38