我們公司目前正在使用一個簡單的中繼/發佈/修補程序分支模型,並希望建議哪些分支模型最適合您的公司或開發過程。什麼Git分支模型適合你?
工作流/分支模型
下面是這個我已經看到了三個主要的描述,但它們部分相互矛盾或不遠遠不夠理清後續問題,我們已經遇到(如下所述)。因此,我們的團隊迄今默認不是很好的解決方案。你在做更好的事情嗎?
合併VS墊底(糾結VS連續歷史)
如若一個
pull --rebase
或合併回主線,直到等待你任務完成?我個人傾向於合併,因爲這保留了一個任務開始和結束的基礎的視覺插圖,我甚至更喜歡merge --no-ff
這個目的。但是它也有其他的缺點。還有很多沒有意識到合併的有用特性 - 它不是commutative(將主題分支合併到主並不意味着將主合併到主題分支中)。我要尋找一個自然的工作流程
有時錯誤發生,因爲我們的程序並不捕獲與簡單的規則具體情況。例如,早期版本所需的修補程序當然應該基於下游,以便可以將上游合併到所有必需的分支中(這些術語的用法是否足夠清楚?)。然而,在開發人員意識到它應該放在更下游之前,修正會讓它進入主服務器,並且如果這已經被推動(甚至更糟糕,合併或基於它的東西),那麼剩下的選項是櫻桃採摘,其相關的風險。你使用了哪些簡單的規則? 此外,在這包括一個主題分支的尷尬必然排除其他主題分支(假設它們從共同基線分支)。開發商不希望完成一個功能啓動另一個感覺像他們剛剛寫的代碼是不存在了
如何避免創建合併(因摘櫻桃)的衝突?
什麼似乎是一個確定的方式來創建合併衝突是櫻桃選擇分支之間,他們不能再合併?在任何一個分支中應用相同的提交還原(如何做到這一點?)可能會解決這種情況?這是我不敢推動大部分基於合併的工作流的原因之一。
如何分解成局部分支?
我們意識到,從主題分支組裝完成的集成將是非常棒的,但是我們的開發人員經常工作並沒有明確定義(有時就像「扯開」一樣簡單),並且如果某些代碼已經進入「misc」這個話題,根據上面的問題,它不能再被帶出去嗎?你如何處理定義/批准/畢業/發佈你的主題分支?
適當的程序,如代碼審查和畢業當然是可愛的。
但是,我們根本無法將事情解決得足以解決這個問題 - 任何建議? 集成分支機構,插圖?
下面是相關問題的列表:(!感謝this PDF)
- What are some good strategies to allow deployed applications to be hotfixable?
- Workflow description for Git usage for in-house development
- Git workflow for corporate Linux kernel development
- How do you maintain development code and production code?
- git releases management
- Git Cherry-pick vs Merge Workflow
- How to cherry-pick multiple commits
- How do you merge selective files with git-merge?
- How to cherry pick a range of commits and merge into another branch
- ReinH Git Workflow
- git workflow for making modifications you’ll never push back to origin
- Cherry-pick a merge
- Proper Git workflow for combined OS and Private code?
- Maintaining Project with Git
- Why cant Git merge file changes with a modified parent/master.
- Git branching/rebasing good practices
- When will "git pull --rebase" get me in to trouble?
- How are DVCS used in large teams?
還檢查了什麼塑料SCM上task driven development寫道,如果塑料是不是你的選擇,學習nvie's branching model和他supporting scripts。
哈,謝謝,其實......我其實已經閱讀了大部分......東西:-)。這是我知道的 - 不是爲了解決平庸的解決方案,而是繼續尋找完美的東西。通常這是一個錯誤,但在這種情況下,很多問題都是危險的,而且手頭的解決方案太麻煩或者太差,我需要繼續尋找。所以我決定列出所有與它有關的問題。 – 2010-04-12 11:47:05
Plastic SCM博客將他們的意見投入到討論中,至少有深刻的見解:http://codicesoftware.blogspot.com/2010/08/branch-per-task-workflow-explained.html – 2010-12-05 16:51:10
你必須小心使用「合併 - 無ff「,檢查這個一些注意事項http://sandofsky.com/blog/git-workflow.html – Doppelganger 2012-08-21 15:01:39