25

コミットを誘発する失敗を見つけるためにgitbisectを使用しています。ただし、範囲内のコミットの多くは、明らかに無関係です(ドキュメントまたは単体テストへのコミットであるため)。特定のディレクトリ内のファイルに影響を与えるコミットをgitbisectが自動的にスキップするようにしたいと思います。これはどういうわけか可能ですか?

4

1 に答える 1

36

ここにはいくつかのオプションがあります。

  1. 特定のコミットを無視する

    git bisectコミットをスキップする機能が含まれています。テストしたくないコミット、タグ、範囲を指定できます

     git bisect skip 0dae5f ff049ab ...
    

    あなたの前にこれをするだけgit bisect runで、あなたが指定したものをスキップするはずです。

  2. ソースが壊れているフォルダを指定する

    bisectまた、問題を探すフォルダーを指定することで、コミットテストを削減することもできます。これは、プロセスの開始時に、 (標準マニュアルからの引用)bisectに追加の引数を指定することによって行われます。git bisect start

     git bisect start -- arch/i386 include/asm-i386
    

    Bisectは、指定されたフォルダーにアクセスするコミットのみを考慮します。


特定のファイルまたはフォルダーにアクセスするコミットを自動的に収集する場合はgit log、そのために使用できます。たとえば、次のコマンドは、特定のフォルダー内のファイルを変更するコミット名を提供します。

git log --pretty=format:%H  tests/ docs/

そしてgit bisect skip、シェル機能を使用して結果をに提供できます。

git bisect skip `git log --pretty=format:%H  tests/ docs/`
于 2010-07-05T12:53:17.277 に答える