web-dev-qa-db-ja.com

git-diffおよびgit logで新規および削除されたファイルを無視する方法は?

いくつかの変更されたファイルと、いくつかの新しいファイル、削除されたファイル、または名前が変更されたファイルが存在する場合があります。 git diffまたはgit-logそれらを省略したいので、変更箇所を見つけやすくします。

実際には、コンテンツなしで新規および削除されたファイルの名前をリストすることが最善です。 「古い」から「新しい」に名前を変更した場合、オプションで「古い」と「新しい」の違いを取得したいと思います。

138
maaartinus

--diff-filterオプションは、diffとログの両方で機能します。

私が使う --diff-filter=M diff出力をコンテンツの変更のみに制限する多数。

名前変更とコピーを検出し、diff出力でこれらを使用するには、-Mおよび-Cそれぞれ、RおよびCオプションとともに--diff-filter

195
CB Bailey
  • 公式文書:
--diff-filter=[(A|C|D|M|R|T|U|X|B)…​[*]]

追加された(A)、コピーされた(C)、削除された(D)、変更された(M)、名前が変更された(R)のファイルのみを選択し、タイプ(通常のファイル、シンボリックリンク、サブモジュールなど)を変更(T)、マージされていない(U)、不明(X)、またはペアリングが壊れている(B)。フィルタ文字の任意の組み合わせ(なしを含む)を使用できます。

*(All-or-none)を組み合わせに追加すると、比較の他の条件に一致するファイルがある場合、すべてのパスが選択されます。他の基準に一致するファイルがない場合、何も選択されません。

また、これらの大文字は、除外するために小文字にすることができます。例えば。 --diff-filter = adは、追加および削除されたパスを除外します。

例:追加、変更、変更されたファイルのみを表示し、削除されたファイルを除外します。

git diff --diff-filter=ACM
44
TeeTracker