私の主な目的は、すべてのプルリクエストのマージを除外することです。したがって、理論的には、次の機能が機能すると予想されます(機能しません)。
git log --grep="^!(Merge)"
私は何かが恋しいですか?
まず、正規表現の単語の前に強打を置いて単純に単語を否定することはできません (どこでそれを見つけましたか?)。そのためにルックアラウンドを使用したかもしれませんが、通常の grep 正規表現はそれらをサポートしていません。grep を直接-P
使用すると、はるかに強力な Perl 正規表現を使用するオプションを渡すことができますが、git log の同様のオプションは見つかりませんでした。
ただし、--no-merges
ログからすべてのマージ コミットを除外するオプションがあります。
git log --no-merges
man ページには、次のよう--no-merges
な意味があります。
複数の親を持つコミットを出力しない
それは正しくありません。正規表現を次のように使用する方が良いでしょう。
git log | grep -o '^(Merge)'
そして、これはより多くの情報を提供します:
git log --pretty=format:'%h by %an, %ar, %s' | grep -o '^((?!Merge).)*$'
使ったと思います!それを逆にしますが、私が知っている唯一の逆revex検索の方法は上記のようなものです。それでも --no-merge は、将来の参照用に書くだけでより良い情報を提供します