ではgitk
、コミットを検索するときに、「文字列の追加/削除」と「一致する行の変更」という同じように聞こえる2つのオプションがあります。
私はそれらの間にまだいくつかの違いがあると思いますか?
「文字列の追加/削除」は、古いファイルに特定の対象文字列があり、新しいファイルにない場合、または古いファイルにはそれがなく、新しいファイルにはある場合です。つまり、周囲のコンテキストを変更せずに文字列を追加または削除します (たとえば、ターゲット文字列が「xyz」の場合、「abc xyz def」->「abc def」または「abc def」->「abc xyzdef」)。文字列は行全体である場合とそうでない場合があります。
対照的に、「一致する行を変更する」とは、変更が文字列に影響しない場合でも、その文字列に一致する行の変更です。たとえば、「abc xyz def」->「abc xyz def foo」。
この 2 つの間には多くの重複がある可能性がありますが、さまざまな状況で役立つほど十分に異なっています。
「文字列の追加/削除」は、変更に文字列がそのまま含まれているかどうかを単純にチェックします。一方、「変更行の一致」は、指定されたパターンを正規表現として適用し、指定された正規表現パターンに一致する変更を見つけます。
対応するコマンド ライン オプションは-S
、(文字列の追加/削除) と-G
(一致する行の変更) です。コマンドラインでは-Sstring --pickaxe-regex
、つるはし文字列を正規表現として扱う可能性もありますが、コミットで削除または追加された場合にのみ一致します (ただし、変更された行の一部のみである場合は一致しません)。