2010-05-18 208 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

相關問題