開発ブログ

WWWクリエイターズが送る、Git、CSS、HTML、コマンドライン、Macの便利機能など、開発に関する役立ち情報発信します。気まぐれに更新。

git logでファイルの変更履歴を確認。問題のコミットを特定!

最終更新:2017-07-03 by Joe

git logで、特定のファイルの変更履歴を確認し、ファイル内の特定の変更が発生したコミットを見つける方法です。

「あれ?これ、いつからこうなってるんだろ・・?」

「ってか、誰がやったんだろ・・(疑惑の念)」

などというタイミングはチームでの開発中は結構あるはずで、覚えておいて損はないコマンドのはずです。これであなたのチーム内に潜む、バグを仕込んだ犯人を発見できます!

ファイルの変更履歴を確認するgit logオプション

変更の履歴を確認する「git log」への「-p」オプションで、パスや、ファイルを限定する事ができます。

このオプションは、ファイル内のコミット内容をすべて表示しますので、

変更履歴が大量に出力されるかもしれません。--word-diffにして、変更を1行ではなく、行内で表します。コンパクトになります。

特定のユーザのコミット履歴を見る

pオプションだけでは、まだ変更内容が多すぎて絞り込むのが大変だったので、怪しいチームメンバーで絞り込みます。今回、あなたが疑っている、チームの新人「タダシ」さんのコミットを確認します。

--authorコマンドは、コミットauthorに特定の文字列を含むコミットだけに限定します。

特定のコミットから、過去3回分のログを見る

まだコミットログが多いので、だいたいあたりを付けたコミットタイミングから、いくつかの変更コミットを詳しく見てみます。

起点となるコミット指定し、「-n 3」で3回分だけの出力を行います。

 

・・・、さて、犯人は見つかったでしょうか?

もし本当に、タダシさんの不注意だったとしても、決して咎める事なく、優しく伝えてあげて下さい。(あなた優しさは、地球を一周して、やがてあなたに帰ってくると思います。)

過失の糾弾にメリットはありません。あなたのチームに必要なのは、みんながより効率よく、また、気持ちよく開発を進められることだと思います。

git log を使ったファイルの変更履歴の調査に関しては、以上です。

ファイルの変更履歴の確認に関する参考リンク