2010-05-18 118 views
2

以下是我所做的:使用Mercurial将本地克隆推送到远程存储库

将远程存储库克隆到本地计算机。从第一个克隆创建第二个克隆。对第二个克隆进行更改。永远不要触摸驻留在第一个克隆中的任何东西。

现在如果我直接从第二个克隆推送到远程回购会发生什么?远程回购中引入了新的分支?

也许一个愚蠢的问题,但我不能测试它,因为有其他开发人员在工作的代码,我不想惹什么。

谢谢。

+0

你总是可以建立一个虚拟的“远程”回购和它的克隆与水银命令玩,看看他们做什么。分布式,事情很容易建立。 ;-) – Santa 2010-05-19 06:56:40

回答

0

现在如果我直接从第二个克隆推送到远程回购会发生什么?远程回购中引入了新的分支?
在这种情况下你想要做的事情是再次克隆中央仓库(以防其他程序员进行更改)将你的更改与这些仓库合并,然后将其推回到中央仓库。

这确保您的分支现在再次成为主分支的一部分。

都市报

编辑
也许这将是一个更加清楚一点

  1. 克隆repo1到你的机器
  2. 让你的机器上repo1的克隆保持圆通原
  3. 更改您计算机上的repo2
  4. 拉扯cha从repo2 nges到repo1,合并(如果需要)再次
  5. 克隆CR(如果其他程序员所做的更改)从repo1
  6. 拉更改新克隆的回购协议(如果需要合并)
  7. 推新克隆的回购回以CR
  8. 克隆CR一次删除所有回购,以获得最新的副本
+0

感谢大都市的回答。根据你的回答,如果我想要其他人看到我在我的分支中做什么,我只需要从我的本地分支推送到中央回购。所以我的本地克隆显示为一个远程分支给其他人,对吧? – yang 2010-05-18 20:26:59

+0

你不想先“推”。如果您先推送而没有将您的更改与CR合并,那么CR中会有一个挂起的分支。这就是为什么您应该再次克隆CR,将您的更改与该更改合并,然后再推回。只要记住,如果你一直担心搞乱了事情,你总是可以将CR克隆到你的系统,并随意使用存储库。 – Metropolis 2010-05-18 20:30:25

+0

有时候额外的克隆步骤是不必要的,但是当多个程序员使用同一个存储库时,最好克隆它并检查他们是否首先进行任何更改。如果您的存储库(在更改之前)与CR位于相同的更改集上,那么您可以直接推送而不合并。但总是先检查一下。 – Metropolis 2010-05-18 20:51:21

相关问题