4

私の主な目的は、すべてのプルリクエストのマージを除外することです。したがって、理論的には、次の機能が機能すると予想されます(機能しません)。

git log --grep="^!(Merge)"

私は何かが恋しいですか?

4

2 に答える 2

11

まず、正規表現の単語の前に強打を置いて単純に単語を否定することはできません (どこでそれを見つけましたか?)。そのためにルックアラウンドを使用したかもしれませんが、通常の grep 正規表現はそれらをサポートしていません。grep を直接-P使用すると、はるかに強力な Perl 正規表現を使用するオプションを渡すことができますが、git log の同様のオプションは見つかりませんでした。

ただし、--no-mergesログからすべてのマージ コミットを除外するオプションがあります。

git log --no-merges

man ページには、次のよう--no-mergesな意味があります。

複数の親を持つコミットを出力しない

于 2012-04-26T14:05:39.660 に答える
2

それは正しくありません。正規表現を次のように使用する方が良いでしょう。

git log | grep -o '^(Merge)'

そして、これはより多くの情報を提供します:

git log --pretty=format:'%h by %an, %ar, %s' | grep -o '^((?!Merge).)*$'

使ったと思います!それを逆にしますが、私が知っている唯一の逆revex検索の方法は上記のようなものです。それでも --no-merge は、将来の参照用に書くだけでより良い情報を提供します

于 2012-04-26T22:55:12.320 に答える