gitでgit logとシンプルにコマンドを打つと、

どのファイルがコミットされたのかわからない。。。

監査上どのファイルが変更されたかの履歴を一覧で出す必要があったので、

git logコマンドについて調べてみました。

必要な項目は以下の項目で、当月の更新・追加・削除があった時のものだけでOKという条件でした。

 項目:コミットした日時、コミットした人、コミットの際のコメント、コミット対象のファイル名

 

まず、参考にさせてもらったのがこのサイト

けっこう細かく「git log コマンド」について書かれていた。

 

しかも日本語☆

 

自分の好きなフォーマットにするには–prettyオプションが必要!

–pretty=format:”ここに何を出力するかオプションを記述”

オプションの一覧は今感じ♪

 

オプション 出力される内容
%H コミットのハッシュ
%h コミットのハッシュ (短縮版)
%T ツリーのハッシュ
%t ツリーのハッシュ (短縮版)
%P 親のハッシュ
%p 親のハッシュ (短縮版)
%an Author の名前
%ae Author のメールアドレス
%ad Author の日付 (-date= オプションに従った形式)
%ar Author の相対日付
%cn Committer の名前
%ce Committer のメールアドレス
%cd Committer の日付
%cr Committer の相対日付
%s 件名

 

例) –pretty=format:”%H %ad %an %s”

これで、

ハッシュ値 Author の日時 Author の名前 件名

を出力することができました♪

 

次に日付の指定です。

オプション 説明
-(n) 直近の n 件のコミットのみを表示する
–since
–after
指定した日付以降のコミットのみに制限する
–until
–before
指定した日付以前のコミットのみに制限する
–author エントリが指定した文字列にマッチするコミットのみを表示する
–committer エントリが指定した文字列にマッチするコミットのみを表示する

 

今月のもののみを指定するので、–sinceと–untilオプションを使って日付指定しました。

–since=2012-10-01 –until=2012-10-31

これで、今月1ヶ月分のログが取得できます。

 

あとは、ファイル名の表示です。

 

オプション 説明
-p 各コミットのパッチを表示する
–stat 各コミットで変更されたファイルの統計情報を表示する
–shortstat
–stat
コマンドのうち、変更/追加/削除 の行だけを表示する
–name-only コミット情報の後に変更されたファイルの一覧を表示する
–name-status 変更されたファイルと 追加/修正/削除 情報を表示する
–abbrev-commit SHA-1 チェックサムの全体 (40文字) ではなく最初の数文字のみを表示する
–relative-date 完全な日付フォーマットではなく、相対フォーマット (“2 weeks ago” など) で日付を表示する
–graph ブランチやマージの歴史を、ログ出力とともにアスキーグラフで表示する
–pretty コミットを別のフォーマットで表示する。オプションとして oneline, short, full, fuller そして format (独自フォーマットを設定する) を指定可能

 

今回は、–name-statusオプションを使いました。

 

これで更新されたもののフィアル名を一覧表示してくれます。

最終的なコマンドは、以下のようになりました。

git log –pretty=format:”%H %ad %an %s”  –since=2012-10-01 –until=2012-10-30 –name-status

出力結果はこんな感じです♪

ハッシュ値 Tue Oct 30 19:26:42 2012 +0900 8518 テ
M test.txt

ハッシュ値 Fri Oct 26 18:33:21 2012 +0900 8518 2nd
M test.txt

ハッシュ値Fri Oct 26 05:22:42 2012 +0900 8518 1st
A test.txt