如何应对陈旧的头脑?

时间:2015-09-03 08:21:45

标签: mercurial

我使用default作为生产分支,在开发新功能时我从中创建新分支,我最终合并到default(如果这是一个死胡同,则关闭)。我无法理解我所处的情况。当试图推动以下回购时,我得到一个“不会推几个头”的消息(来自TortoiseHG)

enter image description here

我的情况如下:

  • 我希望390成为default(生产)rev
  • 387388之间发生的事情,回顾性地是一个错误。由于变化不够好,我不应该合并为默认值。我将在稍后处理它,但是现在我不想处理它,也不想让它弄乱390。是TortoiseHG的另一个负责人在抱怨吗?

我不想强迫任何东西(去过那里,做过那样,受苦)所以在这种情况下采取了什么适当的行动?

1 个答案:

答案 0 :(得分:1)

分布式版本控制经常忽略的一件事是,存储库的位置远远多于“本地”和“远程”。

对于不同的子项目,状态,实验等,您可以拥有许多具有不同更改的本地存储库。

因此,一种方法是简单地克隆或复制本地存储库,以便现在有两个本地存储库。在您一直使用的那个中,您现在只需删除您认为是一个糟糕实验的变更集。这摆脱了该存储库中的那些变更集,但您仍然在另一个本地克隆中有一个副本。现在,您应该能够继续从存储库中推送,因为您已经有效地摆脱了额外的头部。

另一种方法是从远程存储库创建一个新的本地克隆,然后只将您要保留的更改集从原始本地克隆推送到新的本地克隆,然后切换到使用新的本地克隆

最终结果是一样的,但到达那里的方法是不同的,所以根据最简单的方法你现在有两个选择。