問題
業務で『テストケースの規模数を知るために修正したコードの総数を調べて欲しい』とのことで
コミット間の差分を調べるためにgit diffコマンドを使用しました。
その際、git diffの
- ブランチ名の指定方法
- 指定ファイルのみの差分を取得する
がわからなかったので調査しました。
解決策
コミット名の指定方法
git diff -numstat commit1 commit2
gitで管理されたプロジェクトに移動したのちにコミット名を指定しないと「could not access」みたいなエラーで怒られます!(私はここで詰まっていました笑)
コミット名の確認方法
またコミット名は
git log
で見ることができます。ランダムな文字列のやつがそうです。
指定ファイルのみの差分を取得する
上記で差分の変更行数を確認することができますが、プロジェクト内には様々なファイルがあるのでそれを全部出力されては嬉しく無いですよね。
そこで次を使用します。
git diff -numstat commit1 commit2 file/to/path
プロジェクトのルートから見た時のパスを書きます。
パスに関していくつか例をあげてみます。
ファイルとフォルダの構造例を以下に示します。
- src
- index.py
- functions.py
- api.js
src内のフォルダに3つのファイルがあります。
特定のファイルを指定する方法
git diff -numstat commit1 commit2 src/index.py
src/index.pyだけの差分を出力することができます。
特定のディレクトリを指定する方法
git diff -numstat commit1 commit2 src/
これによりsrc以下の3ファイルの差分を確認することができます。
特定の拡張子ファイルのみの差分を確認する方法
git diff -numstat commit1 commit2 src/*.js
これにより拡張子が.jsであるファイルの差分を確認することができます。
まとめ
コミット間の差分を変更行数で取得する方法を見てきました。
ファイル名を指定し、時にはワイルドカードを使用することで自分の欲しい差分を出力することができました。
gitなんでもできちゃいますが、こうやって知らない機能がたくさんありますね。
終わり
コメント