您的本地仓库不需要“修复”。这是一个非常标准的案例,如果您经常使用 Mercurial,您会经常看到。
问题是多头。
您可以合并您的头,假设您的工作目录是您的版本并且只有另一个头:
hg merge
这将导致合并变更集(就像跨分支合并一样)。
或者您可以启用rebase 扩展以将您的版本重新定位到分支的尖端(另一个头):
hg rebase --source<YourVersionNumber> --dest<TipVersionNumber>
这不会导致合并变更集,并且只会将您的更改移植到您指定的变更集之上,就好像它们一直是从该变更集诞生的(因此变基或“新”基)。
多头是一种有趣的内部分支分支......您可以继续检查自己的头并在头之间使用hg update
. 我们在服务器上阻止每个分支的多个头,所以我们的推送会失败。我建议将多个头保持在本地,因为它们不像分支那样清晰。
我倾向于以以下两种方式之一与 Mercurial 合作:
- 如果工作规模很大,我会将其分支并遵循持续集成实践(不断将主分支合并到我自己的分支等)。然后,当我对最终结果感到满意时,我会重新合并回 main。
- 如果工作规模很小,我将简单地针对主分支和“合并”头部每隔一段时间进行一次。我说“合并”,因为我通常使用变基。如果更改很简单并且不太可能发生冲突,则重新设置基础效果很好。
我的硬性规定:如果我不能使用 rebase,我把它放在 main 的一个分支上。