2011-07-05 16 views
19

私はgitリポジトリで作業していますが、膨大な数のファイルが含まれています。 wはコミットする。gitで1つのコミットから別のコミットに変更されたファイルの数を調べるには

+0

多分 'Gitのwhatchanged':

git whatchanged -1 --format=oneline | find /v /c "" 

重要なWindows固有の作品あなたがこれと他のソリューションで使用されるWCコマンドを交換しなければならないということですか? –

+1

@Kerrek SBそれは良い答えのように見えます。なぜあなたはそれを答えではなくコメントに入れますか?申し訳ありませんが、時々私はそれを取得しません。 – SteeveDroz

+0

@Oltarus:OK、done :-)答えを保証するのに十分な大きさには見えなかったし、それが本当にニーズを満たしているかどうかはわからない。しかし、いくつかのドキュメントをチェックした後、それはそうです! –

答えて

34

のように動作します。それ自体では、すべてのコミットを示していますが、あなたはまた、単に N 最近のコミットにそれを制限することができます。

git whatchanged -1 

ファイルをカウントする:

git whatchanged -1 --format=oneline | wc -l 

detailsためgit help whatchangedを参照してください。

+5

これは常にファイルに1を加算したものをカウントすることに注意してください。 '--format = oneline'にはコミットハッシュ/ヘッダーが含まれています。 – c00kiemon5ter

+0

@クック:うん、良い点。 –

+1

'git whatchanged -1 --format = oneline |テール-n +2 | wc -l' –

1

使用この:

git log --oneline --name-status <HASH> -1 

例:

$ git log --oneline --name-status bb3ae49 -1 
M  .vim/spell/en.utf-8.add 
M  .vim/spell/en.utf-8.add.spl 

これはgit whatchangedツールはあなたに変更されたファイルの概要を示しただけで

git whatchanged --oneline --name-status <HASH> -1 
+0

'git whatchanged'を使うのはお勧めしません。 –

11

別に上記の方法からあなたもこれを行うことができます:

git diff HEAD^..HEAD --name-onlyを - (HEAD^)をHEAD前HEADと1つのリビジョン間で変更されたファイルのリストが表示されます。だから、

git diff <SHA1-of-from-commit>..<SHA1-of-to-commit> --name-only

を使用すると、パイプwc -lへの出力は、それはあなたのファイルの数を与える必要がある場合:あなたがコミット「する」のSHA1とコミット「から」とHEADのSHA1とHEAD^を置き換えることができますコミット間で変更されました。

+0

単一のコミットで変更されたファイルだけでなく、任意のコミット間でファイルを数えることがより便利です。ブランチ名とタグで動作することに注意してください(もちろん、HEADとHEAD ^に加えて他のコミット短縮形も使用できます) –

7
git show --stat 

これは、ファイルのリストを与えるには、次のように変更されました:

1ファイルには、1つの削除1つの挿入(+)に変更 - あなたドン場合は、コミットコードを追加することができ

オプションを()最新の情報を入手したい。 Windowsで

git show --stat {commit code without brackets} 
関連する問題