git - 一分为二,从最初的提交

标签 git git-bisect

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

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

最佳答案

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

或者将这些命令 merge 到一个别名中,例如:

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


如果你使用的 git 版本早于 1.7.4.2,你将没有 --max-parents 选项,所以需要使用类似 git rev 的东西-列表头 | tail -n 1 代替。

关于git - 一分为二,从最初的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24657868/

相关文章:

git - 如何使用文件路径减少 git bisect 运行?

git - 如何中止 Git Bisect

具有冲突解决功能的 Git merge 使先前的提交消失

java - Git 不会停止跟踪 eclipse java .recommenders

git - 自动中止 "failed"git rebase?

git - 如何摆脱 Git 中的 "refs/bisect/bad"分支

java - Eclipse - 外部 JAR 和 git

python - 如何使用python从本地克隆存储库获取github组织和存储库名称?

Git 将 merge 的提交一分为二

Git:相当于 `--full-history` 和 `git bisect` 的 `git blame`