3

特定の単語を含まないコミットの git ログをフィルタリングするにはどうすればよいですか?

私は正規表現サイトを見て、Git Bash で成功しなかったいくつかのケースを試しました。

4

3 に答える 3

4

git log --grep="<your string>"パラメーターと組み合わせて使用​​し--invert-grepて、検索条件を逆にすることができます (Git for Windows 2.6.2 以降)。

例:

コミット メッセージに文字列が含まfooれるコミットを検索します。

git log --grep="foo"

コミット メッセージに文字列が含まれていないfooコミットを検索します。

git log --invert-grep --grep="foo"

于 2015-11-04T16:02:03.047 に答える
1

クラウディウが述べたように

一般に、特定の文字列を含まない正規表現を書くのは面倒です。計算モデルのためにこれを行う必要がありました。定義が簡単な NFA を取得し、それを正規表現に変換します。「猫」を含まないものの表現は、約 80 文字の長さでした。

エレガントではなく、機能する方法で逆に行うことができます

git log ... | grep -v "someword"

PS - RE の否定は ^ 接頭辞です。(接頭辞の使用法) には -E (拡張正規表現) が必要な場合がありますが、否定された単語を正規表現の単語としてgit log定義することは、本当の悪夢です。

于 2012-11-29T12:41:44.310 に答える
0

この方法でのみコミット メッセージを検索できます。これは-m、チェックインでフラグを使用してコードを送信することによって行われます。例:

commit -m "message describing awesome code changes"

これにより、メッセージがログに保存されます。つまり、たとえば"message describing awesome code changes"単語 を検索するとawesome、結果としてこれが返されます。

検索しているフレーズ/単語/メッセージがコミット メッセージに含まれていない可能性はありますか?

于 2012-11-28T21:34:40.853 に答える