问题标签 [git-bisect]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - git bisect 不起作用,没有输出
我最近尝试使用git bisect
,但它只是没有用。树仍然在 master 中,我没有看到任何输出git bisect
。这是我尝试过的:
我在两个不同的仓库上试过这个。没用。git --version 在 Ubuntu 9.10 上是 1.6.3.3 有什么想法吗?
git - 在二等分之前将工作树更改为特定提交的最佳方法是什么?
git bisect
开始会话时我通常的工作流程是:
现在,我通常知道过去的事情是可行的,但我还不知道哪个版本好,所以我通常想将我的工作树恢复到旧状态,构建、测试、重复,直到找到一个工作版本我可以用 标记git bisect good
。
执行“将我的工作树恢复到旧状态”步骤的最佳方法是什么?git reset --hard <some_good_rev>
? git checkout <some_good_rev>
? 还有什么?请证明你的回答。
git - 是否有一个脚本可以为 Perforce (p4) 提供相当于 git-bisect 的脚本?
git-bisect提供了钩子来对修订执行二进制搜索并找出哪些更改破坏了设计。Perforce 是否有等效的脚本?我做了 SO 和谷歌搜索,但没有运气。
2010 年 3 月 1 日更新:正如 Douglas Leeder 正确指出的那样,线性历史很容易做到这一点。然而,我们确实有多个分支,分支之间进行合并,所以它不像线性历史那样微不足道。此外,构建和测试代码需要一些时间(数小时),因此自动测试可以很好地进行,而无需我回来并在夜间/周末运行。
svn - 用颠覆进行二等分的最佳方法是什么?
我倾向于在 git 中广泛使用 bisect 命令。现在我想在 subversion 存储库中做同样的事情。平分颠覆存储库的最佳方法是什么?
将 svn 存储库转换为 git 不是一种选择,因为它是一个相当大的存储库,并且 svn 服务器速度很慢 - 转换需要几天时间。
git - 如何使用文件路径减少 git bisect 运行?
我正在使用git bisect来查找导致提交的失败。但是,该范围内的许多提交肯定是无关紧要的(因为它们是对文档或单元测试的提交)。我想让 git bisect 自动跳过影响某些目录中文件的提交。这有可能吗?
git - 我怎样才能找出 git bisect 下一步会尝试什么提交?
在某些情况下,在git bisect
会话期间,测试特定提交需要很长时间(例如,因为我必须构建一个完整的发布包并将其部署在一台特别奇怪的机器上)。事实上,测试一个构建需要很长时间,以至于我想在不知道当前测试是否成功的情况下已经开始构建接下来的两个提交。这样,我可以通过测试当前版本并并行构建接下来的两个版本来加速二等分。
git bisect
有没有人知道根据当前提交是好还是坏来显示下两个修订版的技巧?
git - 如何使用 git bisect?
我读过一些文章说这git bisect
很棒。但是,我不是母语人士,我不明白为什么它很棒。
有人可以用一些代码示例进行演示:
- 如何使用它?
- 它就像
svn blame
吗?
git - 如何摆脱 Git 中的“refs/bisect/bad”分支
我有以下内容~/.gitconfig
(这只是为了帮助您了解我在看什么):
当我执行 agit log
时,它会向我显示带有分支名称和内容的完整提交树。昨天我发起了一个git bisect
,今天我看到refs/bisect/bad
我的日志输出中有一个分支。
分支到底是什么,我该refs/bisect/bad
如何摆脱它?
git - 你如何让 git bisect 忽略合并的分支?
我知道 git bisect 在设计上是分支感知的,因此如果在好提交 G 和坏提交 B 之间合并到一个分支中,它也需要考虑这些更改,因为 bug 可能包含在分支中。
在我的情况下,我有一个依赖作为一个分支,我不时合并对我的主项目的更改。该依赖项可以被认为是一个库,它与我的主项目具有不同的运行方式、不同的构建系统等,但我仍然希望通过合并到主分支从它进行最近的更改。
那么问题是,在这种情况下二等分时,您最终会在依赖项的提交中出现不可编译的提交。
在进行二等分时,我真的只想将每个分支合并视为一次提交。
到目前为止,我发现的一种解决方法是使用 git log --first-parent 制作有效提交 G..B 的列表,然后在二等分时,如果当前提交不在该列表中,则执行 git bisect skip。不过,这需要很多时间(每次跳过都有很多文件要签出/更改)。
所以问题是:有没有办法用 git bisect 做 --first-parent 或提供我认为有效的提交列表以避免检查我已经知道不可编译的分支?我们如何只检查图中标记为o的提交?
编辑:为清楚起见添加了图表
git - 撤消 git bisect 错误
我正在通过命令行做一个非自动化的 git bisect。一切都很顺利,直到我不小心在命令历史记录中的错误行上按了 return,而不是运行测试,我运行 'git bisect good'(或 bad)。哎呀——我还不知道这个提交应该被标记为好还是坏,但这就是我所做的。
我可以撤消“git bisect good”命令,或者让 git 忘记它的结果,然后返回并运行该提交的测试吗?