【问题标题】:Undoing a git bisect mistake撤消 git bisect 错误
【发布时间】:2012-01-25 13:21:14
【问题描述】:

我正在通过命令行执行非自动 git bisect。一切都很顺利,直到我不小心在命令历史记录中的错误行上按了 return,而不是运行测试,我运行 'git bisect good'(或 bad)。糟糕——我还不知道这个提交应该被标记为好还是坏,但这就是我所做的。

我可以撤消“git bisect good”命令,或者让 git 忘记它的结果,然后返回并运行该提交的测试吗?

【问题讨论】:

    标签: git git-bisect


    【解决方案1】:

    来自git-bisect documentation

    平分日志和平分回放

    在将修订标记为好或坏后,发出以下命令以显示到目前为止所做的工作:

    $ git bisect log
    

    如果您发现在指定修订状态时出错,您可以将此命令的输出保存到文件中,对其进行编辑以删除不正确的条目,然后发出以下命令以返回已更正的状态:

    $ git bisect reset
    $ git bisect replay that-file
    

    【讨论】:

    • 太复杂了,太多依赖了。什么命令或命令序列,根据当前存储库状态(即“那个文件”)不带参数,将保证将存储库重置为错误命令之前的状态?
    • @SzczepanHołyszewski 在我错误地发出git bisect good 太多之前,从我读到它确实花了 25 秒。这里没有“它取决于”位。只是从字面上做到这一点。这并不复杂。 git bisect log > f; vim f; git bisect reset; git bisect replay f;
    【解决方案2】:

    您可以输出使用完成的记录

    $ git bisect log > bisect.log
    

    在编辑器中打开该文件并编辑/删除错误行。然后你可以重播它

    $ git bisect replay bisect.log
    

    这在git help bisect中有记录。

    【讨论】:

    • 您是否还必须按照@manojlds 的回答指示git bisect reset
    • @ColinD 我不必先重置。我正在使用 git 版本 2.19.1.windows.1
    • 我必须先重置,使用 git 版本 2.25.1。
    猜你喜欢
    • 2020-07-26
    • 1970-01-01
    • 2014-10-01
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    相关资源
    最近更新 更多