git diffのgrepはファイルと行番号を表示します。

git diffのgrepはファイルと行番号を表示します。

ブランチで作業するときは、「TODO」コメントにすばやく移動したいと思います。これは意味する

  1. 私のブランチに「TODO」コメントのみを追加したいです(マスターのコメントは無視)。
  2. 各一致のファイルと行番号を表示したいと思います。

私は2つの部分的な解決策を知っています。git grep TODO形式は正しいが(grep.lineNumberをtrueに設定)、結果が多すぎます。 git diff master... | grep TODO良い結果セットですが、ファイルと行番号は表示されません。

git diff変更された各行にファイル名と行番号のプレフィックスを追加するように指示するオプションはありますか? (--line-prefix有望に見えますが、固定文字列だけが必要なようです。)

合格できますか--new-line-format=":%dn: %L"diff - 行番号出力)合格git diff


たとえば、現在の検索結果は次のようになります。

$ git diff master... | grep TODO
+    // TODO use a non-fatal assertion
+        // TODO use a non-fatal assertion
+// TODO make this conditional too

しかし理想的には私はこれが欲しい:

src/foo/abc.cpp:221:+    // TODO use a non-fatal assertion
src/foo/xyz.cpp:934:+        // TODO use a non-fatal assertion
src/foo/util/extra.h:49:+// TODO make this conditional too

ベストアンサー1

patchGitログを使用できます。

git log -p
# Hit '/' for search mode.
# Type TODO
# Then hit 'n' for next

ポイントを制限するには追加できます。firstcommit...HEAD

おすすめ記事