我们有主和生产分支。主分支包含当前的开发,而生产分支包含服务器上运行的东西。有时,有一个重要的错误修正必须应用于两个分支。
目前,我们只是在主分支上创建提交后挑选提交。但是,当我们合并分支时,这有时会产生合并冲突。 有替代方案吗?
答案 0 :(得分:9)
您可以在bugfix-a
和master
的合并基础上创建一个新分支(我们称之为production
)
git checkout -b bugfix-a $(git merge-base master production)
在该分支中应用您的错误修复
>>/path/to/file echo 'this fixes the bug'
git add /path/to/file
git commit -m 'important bugfix'
然后,将这个新分支合并到master和production:
git checkout master
git merge bugfix-a
git checkout production
git merge bugfix-a
这样你就可以在以后合并master和production了,Git会聪明地知道要选择哪些提交。
(单调 - 是的,它不是Git - 调用此工作流程daggy fixes)
答案 1 :(得分:4)
为每个修补程序创建一个单独的分支,并将其合并到开发分支和生产分支中。
gitflow模型通常运行良好,我建议您查看:http://nvie.com/posts/a-successful-git-branching-model/
您的主分支类似于他们的开发分支,您的生产分支类似于他们的主分支
答案 2 :(得分:3)
你可以使用Gitflow。我认为'hotfix'可以处理你的场景。