web-dev-qa-db-ja.com

git-reflogに各エントリと一緒に日付を表​​示させる方法はありますか?

Git-reflogコマンドは、デフォルトでは各エントリの横に日付を表​​示しません。これは奇妙な見落としとして私を襲います。これは非常に役立つと思います。

各reflogエントリが追加されたときに表示するために使用できるコマンドラインオプションやその他の調整はありますか? manpage は近日公開されません...

248
Andrew Ferrier

マニュアルページに書いているように、git logのオプションを使用できます。たとえば、git reflog --pretty=shortまたはその他のオプションを使用できます。

試してみる

git reflog --date=iso
368
Balog Pal

--walk-reflogsgit logバリアントを使用できます:

git log -g

これはデフォルトではかなり冗長で、とりわけ日付を出力します。標準の--pretty=フラグでフォーマットできます。

Reflogコマンドを--pretty=フラグとともに直接使用して、出力をフォーマットすることもできます。

git reflog --pretty='%cd %h %Gd %gs'

上記の形式では、%cdは通常のreflog出力の左側にコミット日を示します。

30
Klas Mellbourn

gitエントリをカウントするreflogエントリまたは時間指定されたreflogエントリ、つまり.

$ git reflog @{now}

$ git reflog @{0}
6
gitster

カスタム形式を使用する必要があります。

git reflog --format='%C(auto)%h %<|(20)%Gd %C(blue)%cr%C(reset) %gs (%s)'

上記の形式では、%hはコミットハッシュ、%crはコミッターの相対的な日付、%gsはreflogサブジェクト、%sはコミットサブジェクトです。 git-log docs で他の可能なプレースホルダーを確認してください。たとえば、%ciの代わりに%crを使用すると、絶対コミット日が表示されます。

カスタムpretty形式を使用してこれを〜/ .gitconfigに保存し、エイリアス経由で参照できます。

[alias]
    rl = reflog --pretty=reflog
[pretty]
    reflog = %C(auto)%h %<|(20)%Gd %C(blue)%cr%C(reset) %gs (%s)
5
blueyed

注git 2.10(2016年第3四半期)では、 git reflog で日付に関するドキュメントが改善されています。

commit 642833dcommit 1a2a1e8 (27 Jul 2016)、および commit d38c7b2commit 522259dcommit 83c9f95commit 2b68222 (2016年7月22日)by Jeff King(peff .
サポート: ジェフ・キング(peff
C浜野潤夫-gitster- in commit 0d32799 、08 Aug 2016)

rev-listオプションが更新されます

出力のreflog指定子は、いくつかのルールに応じて、ref@{Nth}Nthはreflogの逆時系列インデックス)またはref@{timestamp}(そのエントリのタイムスタンプ付き)として表示されます。

以下を含む :---date=rawに関する更新:

エポック(1970-01-01 00:00:00 UTC)からの秒数として日付を表示し、その後にスペース、UTCからのオフセットとしてタイムゾーン(4桁の+または-、最初の2つは時間) 、2番目の2つは分です)。
つまり、タイムスタンプがstrftime("%s %z")でフォーマットされているかのように。
-localオプションはseconds-since-Epoch値(常にUTCで測定されます)には影響しませんが、付随するタイムゾーン値は切り替えます。

新しいオプション:--date=unix

unix Epochタイムスタンプ(1970年からの秒数)として日付を表示します。
--rawと同様に、これは常にUTCであるため、-localは効果がありません。

4
VonC