1

在我当前的工作流程中,我正在更新/重新定位一个古老的补丁以针对最新版本的项目。

在我当前的工作流程中,我使用 git bisect 来查找可用于干净地应用补丁的最新提交。

要检查补丁是否可以干净地应用,我需要修补文件并检查退出状态。此过程更改不再干净的工作目录。

在将当前提交应用为好或坏之前,我总是使用git reset --hard,但这个任务很烦人。它是必需的还是git bisect会为我处理的?

4

2 回答 2

1

我有几次完全一样的情况。在“变形”到完全不同的版本之前,最好让树处于干净状态。

我最终把补丁放进了一个藏匿处。

通常,在二等分的情况下,一个好的方法是将迭代放入一个命令行中,这可以很容易地从 shell 历史中重复。例如:

$ if git stash pop ; then <command to do a clean build and test>; git stash save; fi

然后通常剩下要做的就是git bisect goodor git bisect bad,并在下一个测试版本中重新运行上述内容。如果存储不适用(if失败),您必须解决它,或者只需使用git bisect skip.

于 2014-05-25T14:42:45.933 回答
1

git reset --hard像你一直在做的那样做是个好主意。

如果本地更改不受结帐的影响,那么没关系,它们只会“与您同行”。

但是,如果您的本地更改将被结帐覆盖,则会产生错误

$ git bisect 好
二分法:在此之后还有 2 个修订版需要测试(大约 1 步)
错误:您对以下文件的本地更改将被结帐覆盖:
        自述文件
请在切换分支之前提交您的更改或存储它们。
中止
于 2014-02-21T05:10:52.730 回答