実行された最新の日時を確認するにはどうすればよいgit pull
ですか?何か問題が発生したときにサーバー上のコードがいつ変更されたかを頻繁に知る必要があります。
12 に答える
stat -c %Y .git/FETCH_HEAD
そのファイルの最後の変更のUNIXタイムスタンプを提供します。Gitは、プルするものがない場合でも、プルまたはフェッチするたびにFETCH_HEADファイルを書き込みます。
直感で、「stat -c %y .git/FETCH_HEAD」を試してみたところ、人間が読める時間のプリントアウトが得られました。
> stat -c %y .git/FETCH_HEAD
2015-02-24 17:42:08.072094410 -0500
さらに、
~/.gitconfig ファイルwhen = !stat -c %y .git/FETCH_HEAD
のセクションに追加できます (任意の git リポジトリで次のコマンド ラインを実行して、これを自動的に行うのが最も安全です)。[alias]
git config --global alias.when '!stat -c %y .git/FETCH_HEAD'
そして、いつでも新しい「コマンド」でこの情報を見つけることができます:
> git when
2015-02-23 15:07:53.086254218 -0500
[その後、"man stat" を実行することを思いついたのですが、'stat' プログラムで使用できる % パラメータが他にもたくさんあることがわかりました。YMMV.]
このgit show
コマンドは、最新のコミットの日付を表示します。これはコミットがローカル リポジトリにプルされた日付ではありませんが、Git はそのようなプル情報を保持しません。
サーバー上のファイルの ctime (作成時間) を使用して、最後のプルの時間を見つけることができる場合があります。例えば:
ls -lct
最新のものから順にソートされた各ファイルの ctime を表示します。
裸でないリポジトリ (および裸のリポジトリは には意味がありませんgit pull
) では、git は、ブランチのヒントと現在のブランチのアイデアに対するすべての変更を の「reflogs」に記録し.git/logs
ます。これらは、 を使用して表示できますgit log -g
。
ただし、ログ ファイルにはタイムスタンプがありますが、それが出力されるようには見えませんgit log -g
。.git/logs/HEAD
ただし、たとえば、見てみると、フォーマットが非常に簡単に解析できることがわかります。これは、ref (または HEAD) の変更元、変更先、変更者、変更時期、アクティビティ メッセージで構成されています。
Python を使用します。python -c "import os;print os.stat('.git/FETCH_HEAD').st_mtime"