1. ホーム
  2. git

[解決済み] Gitログの日付フォーマットを変更する方法

2022-04-21 23:58:15

質問

Git の最後のコミットを表示しようとしているのですが、特殊な書式で日付を表示する必要があります。

私は、ログのきれいな形式は知っている %ad--date の書式がありますが、唯一の --date 形式は "short"です。他の書式を知りたいのですが、また、次のようなカスタム書式を作成できますか?

git -n 1 --date=**YYMMDDHHmm** --pretty=format:"Last committed item in this release was by %%an, %%aD, message: %%s(%%h)[%%d]"

解決方法は?

その他は(以下 git help log ):

--date=(relative|local|default|iso|rfc|short|raw)
  Only takes effect for dates shown in human-readable format,
  such as when using "--pretty".  log.date config variable
  sets a default value for log command’s --date option.

--date=relative shows dates relative to the current time, e.g. "2 hours ago".

--date=local shows timestamps in user’s local timezone.

--date=iso (or --date=iso8601) shows timestamps in ISO 8601 format.

--date=rfc (or --date=rfc2822) shows timestamps in RFC 2822 format,
  often found in E-mail messages.

--date=short shows only date but not time, in YYYY-MM-DD format.

--date=raw shows the date in the internal raw git format %s %z format.

--date=default shows timestamps in the original timezone
  (either committer’s or author’s).

私が知る限りでは、カスタムフォーマットを作成する組み込みの方法はありませんが、シェルでいくつかのマジックを行うことができます。

timestamp=`git log -n1 --format="%at"`
my_date=`perl -e "print scalar localtime ($timestamp)"`
git log -n1 --pretty=format:"Blah-blah $my_date"

この最初のステップでは、ミリ秒単位のタイムスタンプを取得します。2行目を変更すれば、このタイムスタンプを好きなようにフォーマットすることができます。この例では、次のようなものが得られます。 --date=local ただし、日付けは水増ししてあります。


また、毎回これを入力することなく永続的な効果を得たい場合は、以下を試してみてください。

git config log.date iso 

あるいは、このアカウントでのすべての git の使用に対して効果を発揮します。

git config --global log.date iso