2016-09-17 9 views
0

以下に示すように、ファイル内の特定の行のコミットを取得する方法があります。しかし、git logを使ってファイル内の特定の行のコミット数を数える方法はありますか?ファイル内の特定の行のGitログカウントをコミットします

git log -L:40,50:filename.txt 
+1

コミットによって1行が3行に変換されるとどうなりますか?あるいは、コミットが問題の行の前に20行を追加し、今度は40行目が60行目になるでしょうか?彼らはどのように数えられるでしょうか? – Schwern

答えて

3

私はこのような何かしたい:これは何をしよう

git log -L 1,3:tests/requirements.txt | grep -Ec "commit [0-9a-fA-F]{40}" 

grepを使用してコミットIDを分離し、カウントした後、これらの行に影響を与えるすべてのコミットをつかむです。 -Eフラグを指定すると、grepは拡張正規表現を使用し、-cは一致する行の代わりにカウントを出力します。これはgit logの任意の変化のために働くだろう

- 例えば、

git log | grep -Ec "commit [0-9a-fA-F]{40}" 

は、あなたのレポでのコミットの合計数を与える、

git log tests/requirements.txt | grep -Ec "commit [0-9a-fA-F]{40}" 

はあなたの総数を与えますそのファイルを含むコミットなどがあります。 git logの呼び出しに完全コミットIDが含まれている限り、あなたは金色です。

+1

あなたのgrep | wcは非常に一般的です。オプションがあります。 '| grep -c^commit'がそれを行います。 – jthill

関連する問題