从最初的提交中删除所有内容

时间:2014-07-09 15:32:48

标签: git git-bisect

假设我有一个带有非常快速的测试脚本的小项目,我只想将所有内容从最初提交到当前提交一分为二。我怎么能这样做?

为了澄清,我不想浪费时间来识别一个好的提交和一个糟糕的提交,所以我正在寻找一种快速的方法来将最新的提交标记为坏,并且初始提交是好的

1 个答案:

答案 0 :(得分:12)

git bisect start
git bisect good
git bisect bad `git rev-list --max-parents=0 HEAD`
git bisect run ./test.sh

或者将这些命令合并到别名中,例如:

bisect-all = !git bisect start && git bisect bad &&\
        git bisect good `git rev-list --max-parents=0 --first-parent HEAD`

然后只使用git bisect-allgit bisect run ./test.sh

创建一个别名来处理整个过程稍微复杂一些:

quick-bisect = !sh -c 'git bisect start && git bisect bad &&\
        git bisect good `git rev-list --max-parents=0 --first-parent HEAD` &&\
        git bisect run "$@" && git bisect reset' -

但有了这个,您只需运行git quick-bisect ./test.sh


如果您使用的是早于1.7.4.2的git版本,则您不会拥有--max-parents选项,因此需要使用类似git rev-list HEAD | tail -n 1的内容。< / p>