我有两台机器,A 和 B,它们都访问外部 hg 存储库。
我在 A 上做了一些开发,还没有准备好将变更集推送到外部,并且需要切换机器,所以我使用hg serve
. 变更集在 B 上继续,被提交,然后被推送到外部仓库。
然后我拉上 A 并更新为默认/提示。这留下了以前作为分支推送到 B 的本地变更集,但是由于我如何推送事物,本地变更集中的更改已经在默认/提示中。
我现在继续在 A 上进行更改并在本地提交,但是当我尝试推送时,hg 要求我合并或执行push -f
。我知道push -f
几乎从不推荐。这种情况接近我应该使用 rebase 的情况,但是我在本地或外部存储库中并不真正需要“rebase”的变更集,因为它们已经通过推送到 B 有效地处于默认/提示状态。
现在,我知道我可以与最新的本地变更集合并并丢弃更改,但是我仍然必须提交合并,这让我回到了 rebase 领域。
这是我可以做的hg push -f
吗?
此外,如果我在继续提交变更集之前已更新为默认/提示,为什么从 A 推送会创建远程头?