在我当前的工作流程中,我正在更新/重新定位一个古老的补丁以针对最新版本的项目。
在我当前的工作流程中,我使用 git bisect 来查找可用于干净地应用补丁的最新提交。
要检查补丁是否可以干净地应用,我需要修补文件并检查退出状态。此过程更改不再干净的工作目录。
在将当前提交应用为好或坏之前,我总是使用git reset --hard
,但这个任务很烦人。它是必需的还是git bisect
会为我处理的?
在我当前的工作流程中,我正在更新/重新定位一个古老的补丁以针对最新版本的项目。
在我当前的工作流程中,我使用 git bisect 来查找可用于干净地应用补丁的最新提交。
要检查补丁是否可以干净地应用,我需要修补文件并检查退出状态。此过程更改不再干净的工作目录。
在将当前提交应用为好或坏之前,我总是使用git reset --hard
,但这个任务很烦人。它是必需的还是git bisect
会为我处理的?
我有几次完全一样的情况。在“变形”到完全不同的版本之前,最好让树处于干净状态。
我最终把补丁放进了一个藏匿处。
通常,在二等分的情况下,一个好的方法是将迭代放入一个命令行中,这可以很容易地从 shell 历史中重复。例如:
$ if git stash pop ; then <command to do a clean build and test>; git stash save; fi
然后通常剩下要做的就是git bisect good
or git bisect bad
,并在下一个测试版本中重新运行上述内容。如果存储不适用(if
失败),您必须解决它,或者只需使用git bisect skip
.
git reset --hard
像你一直在做的那样做是个好主意。
如果本地更改不受结帐的影响,那么没关系,它们只会“与您同行”。
但是,如果您的本地更改将被结帐覆盖,则会产生错误
$ git bisect 好 二分法:在此之后还有 2 个修订版需要测试(大约 1 步) 错误:您对以下文件的本地更改将被结帐覆盖: 自述文件 请在切换分支之前提交您的更改或存储它们。 中止