I'm using git bisect to find a failure inducing commit. However, a lot of the commits in the range are definately irrelevant (because they are commits to the documentation or to unit tests). I'd like to make git bisect automatically skip commits which affect files in certain directories. Is this possible somehow?
1 Answers
You have several options here:
Ignoring specific commits
git bisect
contains functionality of skipping commits. You can specify commits, tags, ranges you don't want to test withgit bisect skip 0dae5f ff049ab ...
Just do this before you
git bisect run
, and it should skip what you specified.Specifying folders with broken sources
You can also cut down commits
bisect
tests by specifying what folders it should look for problems in. This is done at the beginning ofbisect
process by supplying additional arguments togit bisect start
(quote from standard manual):git bisect start -- arch/i386 include/asm-i386
Bisect will only consider commits that touch the folders specified.
If you want to automatically gather commits that touch certain files or folders, you may use git log
for that. For example, the following command will give you commit names that modify files in certain folders:
git log --pretty=format:%H tests/ docs/
And you can supply the result to git bisect skip
with use of shell capabilities:
git bisect skip `git log --pretty=format:%H tests/ docs/`

- 2,194
- 1
- 15
- 32

- 96,026
- 17
- 121
- 165
-
I knew about the first two options already, but manually skipping commits was too much work (there are hundres of them) and I also don't know which folders contains the broken sources. The suggestion to use `git log` is great! Unfortunately I'm on Windows, so fancy shell capabilities won't work for me. However, I can easily construct an appropriate `git bisect skip` command line by hand. Thanks! – Frerich Raabe Jul 05 '10 at 13:11
-
2@FrerichRaabe: What, your git didn't come with a copy of bash? – SamB Sep 10 '12 at 22:44
-
5hmmm adding 2 folders to `git bisect start` only looks at commits which touch BOTH folders. Is there a way to look at commits which touch EITHER folder? – EoghanM Apr 28 '15 at 14:28
-
what is "arch"? in `git bisect start -- arch/i386 include/asm-i386` – Eduard Jan 09 '19 at 13:03
-
@Eduard those are the examples used in `man git-bisect`; they used to be directories in the Linux kernel source tree. – chrstphrchvz May 13 '19 at 11:00