gpt4 book ai didi

Mercurial分支修订历史,推送时两个远程头

转载 作者:行者123 更新时间:2023-12-03 09:31:44 25 4
gpt4 key购买 nike

我在本地提交了一堆变更集 (23-28),然后我意识到我想回到修订版 25,所以我运行“hg up -r 25”返回。然后我从那里开始工作并提交了一些变更集。现在我准备将我的更改推送到服务器,但是当我尝试这样做时,它会提示“中止:推送在分支‘默认’上创建新的远程头!”。我认为其他人可能已经提交到存储库,所以我做了一个 hg pull,但没有得到任何更改。

这是我正在使用的修订树

 23
|
24
|
25
/ \
26 29
| |
27 30
| |
28 31
|
32
|
33
|
34
|
35

是否可以删除修订版 26、27 和 28?我该如何解决问题,以便我可以毫无错误地运行“hg push”?我应该使用不同的命令返回到修订版 25 吗?

最佳答案

让我对 Lasse 的回答提出异议。 Mercurial 是一个关于构建不可变历史的系统。想想一位科学家在他或她的实验室书中用钢笔在编号的页面上工作。一切都很重要,即使是你不想写的东西,也不想要的东西。默认情况下不启用 strip 命令是有原因的——它违反了作为一个善变目标的不变性。

解决这个问题的更“Mercurial”的方法是将 26 merge 为 35,从 35 中完全选择选项,这样你就回到了一个头脑。那么你的推送仍然只有一个头,但所有的历史都被保留了下来。

或者,您可以选择“hg push -r 35”,这不会给您任何警告或错误,也不需要 -f,因为您将只留下一个头。

strip 没有任何问题,但它不是 Mercurial 中传统工具集或思维方式的一部分。

关于Mercurial分支修订历史,推送时两个远程头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4109708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com