樱桃采摘的替代品

时间:2012-08-29 16:15:40

标签: git

我们有生产分支。主分支包含当前的开发,而生产分支包含服务器上运行的东西。有时,有一个重要的错误修正必须应用于两个分支。

目前,我们只是在主分支上创建提交后挑选提交。但是,当我们合并分支时,这有时会产生合并冲突。 有替代方案吗?

3 个答案:

答案 0 :(得分:9)

您可以在bugfix-amaster的合并基础上创建一个新分支(我们称之为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/

您的主分支类似于他们的开发分支,您的生产分支类似于他们的主分支

enter image description here

答案 2 :(得分:3)

你可以使用Gitflow。我认为'hotfix'可以处理你的场景。