1

変更を見つける (または統計を変更する) ための優れたコマンド ライン fu を使用した回答はたくさんありますが、その反対を見つけたいと思います:特定のコミット以降、(ファイルごとに) 何行変更されていませんか?

私が見つけることができる最も近いものはこれです:コミット以降に変更されていないファイルを見つける方法は? しかし、どのファイルではなく、何行(理想的には各ファイル内)が変更されずに残っているかを知りたいです。

したがって、基本的には、挿入と削除に加えて、変更されていない行をgit diff --stat 出力できますか?

別の方法として、git ls-files、git Blame、およびいくつかの awk マジックがそのトリックを実行する可能性があると想像しますが、まだ完全には理解できていません。-- たとえば、最後の変更のコミット番号で各行にラベルを付けるのではなく、この変更が特定のコミットの前または後に発生したかどうかを示すために git-blame を取得できますか? grep と wc -l を併用すると、そこにたどり着きます。

4

4 に答える 4

0
$ wc -l main.c
718 main.c
$ git diff --numstat v2.0.0 main.c
152     70      main.c

これは、現在の main.c の 152 行が v2.0.0 以降に変更または追加されたため、566 行が変更されていません。

lines-unchanged-in-since () {
        set -- $2 `wc -l $1` `git diff --numstat $2 $1` 
        echo $(($2-$4)) lines unchanged in $3 since $1
}
于 2016-05-15T03:10:06.047 に答える