场景是,有一天早上我上班,拉,更新,合并我的变化无常的树。从现在最新的版本开始,我开始处理今天的任务。我达到了一个合乎逻辑的里程碑并做了一个承诺。树现在看起来像这样:
* <- my first commit for the day
|
* <- merge commit from shared repos by team
现在老板来了,发生了可怕的事情,需要我立即关注。他希望尽快解决问题。
我今天的计划被打乱了。使用Mercurial解决这个问题的最佳方法是什么?
-
我可以编写解决方案,然后再提交一次,然后再推一次。但这很糟糕,因为该提交将有自己的第一个提交作为父级,从而推送不完整的代码。
-
在一个完美的世界里,也许IM编码的新特性将出现在它自己的分支中。但它是一个小特性,我很懒惰,所以它现在就驻留在
default
. 我可以尝试找到将提交从一个分支转移到另一个分支的方法。
-
我可以忽略那个惊慌失措的老板,再做两三次承诺来完成这个功能,然后
然后
开始修复工作,将它们作为单独的提交和推送引入。
这两种感觉都不好。我想要一些符合以下条件的东西:
-
执行更新,使我返回合并提交。
-
执行修复并提交。
-
只推送修复提交,不完整的功能提交仍处于未完成状态。
从而使历史如此:
* <- fix commit (pushed)
|
| * <- my first commit for the day (unpushed)
|/
* <- merge commit from shared repos by team
我们刚搬到办公室的Mercurial,这是我想解决的一个问题。这里有什么善变的大师分享智慧吗?