2012-08-29 91 views
6

我們有一個和一個生產分支。主分支包含當前的開發,而生產分支包含正在服務器上運行的東西。不時,有一個重要的錯誤修正必須應用於兩個分支。櫻桃採摘的替代品

目前我們只是在master分支上創建它之後挑選提交。但是,當我們合併分支時,這有時會產生合併衝突。 有替代品嗎?

+0

這真的不是一個「混帳」的問題。你看到的合併衝突是你的代碼的一個屬性(它是自生產代碼部署以來的分歧)而不是你的工具。 git合併工具(或任何合併工具)無法讀取您的想法,並決定您在master中修改後的代碼的真正含義。就工具而言,'git am'可能比櫻桃選擇更適合您,因爲它允許您在不丟失提交數據的情況下編輯合併。 –

回答

7

您可以創建一個新的分支(我們稱之爲bugfix-a)在master合併基礎和production

git checkout -b bugfix-a $(git merge-base master production) 

該分支應用您的bug修正

>>/path/to/file echo 'this fixes the bug' 
git add /path/to/file 
git commit -m 'important bugfix' 

然後,合併新分支到主人和生產:

git checkout master 
git merge bugfix-a 
git checkout production 
git merge bugfix-a 

這樣你就可以在晚些時候合併master和production,Git會很聰明地弄清楚哪些提交選擇。

(單調 - 是的,這不是混帳 - 調用此工作流程daggy fixes

4

創建每個修補程序的獨立分支,並將其合併到自己的開發部門和您的生產分支上都有。

的gitflow模型作品真的很好總的來說,我建議你檢查了這一點:http://nvie.com/posts/a-successful-git-branching-model/

你的主分支類似於他們的開發分支,您的生產分公司是類似於他們的主

enter image description here

3

您可以使用Gitflow。我認爲'hotfix'處理你的場景。