2011-12-08 51 views
12

我有一箇中央回購和當地回購。回購有「默認」分支和一個名爲分支「mybranch」。如果我在一個名爲分支上工作,並希望偶爾合併我變成默認,然後繼續在命名的分支我應該做這方面的工作:應該將命名分支合併到默認分支中,反之亦然?

  1. 拉離中央回購最新進入我的本地回購
  2. 而工作在mybranch,做一個 「hg merge default」 合併默認INTO mybranch
  3. 提交本地
  4. 然後執行 「hg update default」 和 「hg merge mybranch」 合併mybranch違約
  5. 本地提交
  6. 推到中心回購 Ë OR

做與上面相同,但開關#2與#4? (所以,我合併mybranch違約第一?

回答

6

你現在的方式(合併defaultmybranch第一)是我的首選方式。

我傾向於使用分支針對特定的功能分離的變化或重構,所以最好從default帶來變更成定期指名的分支。這種方式命名分支的變化隨時保持最新相對於default分支。

+0

謝謝 - 我問過,因爲在某些圖表中,我已經看到了它先合併默認的另一種方式。所以我不知道是否有這個原因。例如:http://nvie.com/posts/a-successful-git-branching-model/(這是Git,但你明白了我的觀點......) – BestPractices

+0

該圖很好,因爲唯一的變化就是[幾乎]直接到'master'分支是那個修補程序,它也被合併到'develop'分支中。一種可以完成的方法是在'master'分支上提交修補程序更改,然後將'master'合併到'develop'中。 'master'沒有合併到'develop'中的唯一原因是因爲'master'上沒有任何變化需要被集成。另一個很好的部分是圖中'develop'和'release'分支之間的交互。 –

+0

當我查看該圖中「開發」和「發佈分支」之間的交互時,它看起來好像「開發」首先合併到「發佈分支」,然後「發佈分支」合併到「開發」分支,這是我目前正在做的事情的相反方式(如果您認爲「發佈分支」等同於「默認」和「發展」等同於「我的分支」我是否誤解該圖? – BestPractices

11

你寫你

想偶爾合併我變成默認,然後繼續在命名的分支

工作通常應該關注的分支未合併到default分支,除非該功能完成。也許這就是你的意思?

僅供參考,建議的工作流程做

  1. 創建特性分支
  2. 在那裏做你的工作
  3. 定期(每隔幾天)合併來自default轉變爲關注的分支:

    1. hg pull獲得從其他開發人員的最新變化
    2. hg merge整合最新的版本到特性分支
  4. 當功能分支全部完成,你把它合併到default

    1. hg pull
    2. hg update default籤分支您想合併成
    3. hg merge myfeature做合併

由於將default定期合併到特徵分支中,最終合併將非常小,以確保從兩個分支頭返回到共同祖先只有很小的距離。

+1

如果您的「功能」足夠小,則情況屬實。但是,我們中的許多人都是漸進式地執行功能,即使沒有完全「完成」,也可以完成一些合理的標準。 –

相關問題