1. ホーム
  2. git

[解決済み] git commit の --date パラメータの書式を教えてください。

2023-03-14 18:29:35

質問

git のコミットの日付を上書きする必要がありますが、すべてのドキュメントが --date パラメータを指摘しており、適切な書式についての手がかりがありません。私は考えられるすべての順列を試しましたが、それぞれについて "fatal: invalid date format:" エラーが発生しました。

どのように解決するのですか。

Git 2.6+ (Q3 2015) に新しいオプションが追加されました。

参照 コミット e4f031e (2015年6月30日)、および コミット aa1462c , コミット a5481a6 , コミット b7c1e11 (2015年6月25日)によって ジェフ・キング ( peff ) .

(によって統合されました。 ジュニオ・C・ハマノ--。 gitster -- コミット d939af1 , 2015年08月03日)

format"日付モードの導入

これはフォーマットを直接 strftime .

少し柔軟であることに加えて、主な利点は、あなたのシステムで strftime が、あなたのロケールが好むフォーマット (例えば、曜日をどのように綴るか) についてより詳しく知っているかもしれないことです。

--date=format:... は書式をフィードします ... をシステムに送ります。 strftime .

使用方法 --date=format:%c を使用すると、システムロケールの優先的な書式で日付が表示されます。

を参照してください。 strftime のマニュアルを参照してください。

ダビデ・カヴェストロ プロポーズ コメント欄 という例を挙げています。

git commit -m "Test" --date=format:relative:5.hours.ago 


オリジナルの回答(2014年半ば)

--date オプション( コミット 02b47cd は、2009 年 12 月に git1.7.0 用に導入されました) が、このオプションと同じ書式を使用します。 GIT_AUTHOR_DATE でテストされた日付の書式を使用しています。 コミット 96b2d4f :

そこでは、様々なフォーマットが受け入れられていることがわかります。

  • rfc2822。 Mon, 3 Jul 2006 17:18:43 +0200
  • iso8601。 2006-07-03 17:18:43 +0200
  • ローカル Mon Jul 3 15:18:43 2006
  • ショート 2006-07-03 (1.9.1にはありません。2.3.0では動作します)
  • 相対: 参照 コミット 34dc6e7 :

    5.seconds.ago, 
    2.years.3.months.ago, 
    '6am yesterday'
    
    
  • raw: 参照 コミット 7dff9b3 (git 1.6.2、2009 年 3 月) を参照してください。

    内部の生の git フォーマット - エポックからの秒数とタイムゾーン

    (別の言い方をすれば、' date +"%s %z" ' 形式)

  • のデフォルトでは Mon Jul 3 17:18:43 2006 +0200

ADTC 質問と回答 コメント欄 :

ローカルでは2006-07-03 15:18:43を受け付けるのでしょうか?

<ブロッククオート

はい、動作しますし、自動的にローカルタイムゾーンを取ります。

このフォーマットなら、曜日を気にする必要はありませんね ( Sun , Mon など)。