我們有一個主和一個生產分支。主分支包含當前的開發,而生產分支包含正在服務器上運行的東西。不時,有一個重要的錯誤修正必須應用於兩個分支。櫻桃採摘的替代品
目前我們只是在master分支上創建它之後挑選提交。但是,當我們合併分支時,這有時會產生合併衝突。 有替代品嗎?
我們有一個主和一個生產分支。主分支包含當前的開發,而生產分支包含正在服務器上運行的東西。不時,有一個重要的錯誤修正必須應用於兩個分支。櫻桃採摘的替代品
目前我們只是在master分支上創建它之後挑選提交。但是,當我們合併分支時,這有時會產生合併衝突。 有替代品嗎?
您可以創建一個新的分支(我們稱之爲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)
創建每個修補程序的獨立分支,並將其合併到自己的開發部門和您的生產分支上都有。
的gitflow模型作品真的很好總的來說,我建議你檢查了這一點:http://nvie.com/posts/a-successful-git-branching-model/
你的主分支類似於他們的開發分支,您的生產分公司是類似於他們的主
您可以使用Gitflow。我認爲'hotfix'處理你的場景。
這真的不是一個「混帳」的問題。你看到的合併衝突是你的代碼的一個屬性(它是自生產代碼部署以來的分歧)而不是你的工具。 git合併工具(或任何合併工具)無法讀取您的想法,並決定您在master中修改後的代碼的真正含義。就工具而言,'git am'可能比櫻桃選擇更適合您,因爲它允許您在不丟失提交數據的情況下編輯合併。 –