2011-02-10 25 views

回答

2

他們不是不同的方法,但不同的側面,以同一個硬幣。

如果您使用分支進行開發,則需要最終將它們合併到一起。


要回答這個問題:

一個分支是您的源代碼選定部分的副本,用於特定的工作(功能,無論項目)。

A 合併是帶來兩個分支同步和(通常)擺脫過程中的一個分支的行爲。


維基百科,Revision control

版本控制下的一組文件可能在某個時間點是支鏈或叉狀,從而,從該時間向前,一分式兩份這些文件可能以不同的速度或以不同的方式相互獨立地發展。


合併

合併或集成在其中兩個集合變化被施加到一個文件或文件集的動作。一些示例場景如下:

  • 用戶正在處理一組文件,更新或同步其工作副本並進行更改,並由其他用戶將其簽入存儲庫。
  • 用戶嘗試檢入由其他人更新的文件,因爲這些文件已簽出,並且修訂控制軟件自動合併文件(通常在提示用戶是否應繼續進行自動合併之後,以及在某些情況下,只有在合併能夠得到明確和合理解決的情況下才這樣做)。
  • 一組文件是分支的,分支之前存在的問題在一個分支中被修復,然後修復被合併到另一個分支中。
  • 創建了一個分支,獨立編輯文件中的代碼,並將更新後的分支稍後合併到單個統一干線中。
0

用簡單的英語,分支就像是「一樹的分支」裏的樹是你的軟件產品和分支是它的一個特殊的一部分,從中心柱「延伸」,但有其自己的特點。

在現實生活中,如果您必須支持兩個稍微不同的白人的客戶,那麼您可以創建軟件的一個分支。然後,您將擁有核心產品(A)和客戶特定產品(B和C),這些產品基本上是核心產品,並且變化很小。

合併是將這個客戶特定的分支(B或C),並將其與您的核心產品(A)重新整合。這很方便,如果你實現了一個很好的功能是分支B,你想爲每個人都擁有,那麼你將它合併到核心產品中。答:

1

我不認爲你可以「反對」合併vs分支。

當您想要分離開發工作時您可以進行分支,正如我在「When should you branch?」中所解釋的那樣。 (???重構提升漏洞修復...)

關鍵的問題要問,一旦你有一個分支中,你(和其他開發商)可以進化,就是:

「你應該怎麼做與該分支的內容?「

換句話說,你是不是把它放在一邊,或者你把所有的進化重新整合到另一個分支。這就是合併。
但是單獨合併是不夠的。什麼合併它的目的is its workflow:從哪裏到哪裏合併你的代碼?

定義您的工作流程,您將真正利用SCM的內容。

相關問題