在我們的項目中,我們儘量貼近「正式」的git的工作流程,因爲它是這裏建議: http://www.kernel.org/pub/software/scm/git/docs/gitworkflows.html如何處理使用git主題分支工作流時的依賴關係?
我們用master
和next
分支,開始我們的話題分支從master
,經常做測試融入next
,如果分支完成,我們將它合併到master
。
現在有時會發生,topic-X
有一些發展。開發人員創建somefile.c
並在其中添加他需要的代碼。過了一段時間,另一位開發人員在topic-Y
上工作,發現他還需要創建somefile.c
,甚至需要topic-X
中該文件的某些部分 - 但不包含完整文件,因爲它還包含僅與topic-X
相關的代碼。他可能還必須將其他代碼添加到該文件。
如果topic-X
將完成併合併到master
,這很容易:我們可以將topic-Y
重新指定爲master
以使該代碼可用。但是,如果兩個主題仍然不完整?
因爲topic-X
和topic-Y
真的是不相關的,除了在somefile.c
這個小的共享代碼,我們如何才能避免它們相互融合並仍然提供兩種開發與somefile.c
共享的部分?
如果我們創建的somefile.c
在topic-Y
一個新的副本,只有相關的部分,我們發現,我們得到後合併衝突,當我們做集成測試中next
。有其他選擇嗎?
也許是最好的辦法。但是它要求在'topic-X'中有一個純粹的提交,它只添加'somefile.c'中的基本內容。在我們的例子中,依賴關係並不容易預見,所以沒有這種原子性的共鳴。 – 2011-05-29 11:04:27
@Michael在所以有關於如何[櫻桃只挑選部分提交]的提示(http://stackoverflow.com/questions/5717026/how-to-git-cherry-pick-only-changes-to-某些文件)。 – 2011-05-31 12:09:11