我们有一个主分支和一个生产分支。主分支包含当前的开发,而生产分支包含在服务器上运行的东西。有时,有一个重要的错误修复必须应用于两个分支。
目前,我们只是在主分支上创建提交后挑选提交。但这有时会在我们合并分支时产生合并冲突。有替代品吗?
我们有一个主分支和一个生产分支。主分支包含当前的开发,而生产分支包含在服务器上运行的东西。有时,有一个重要的错误修复必须应用于两个分支。
目前,我们只是在主分支上创建提交后挑选提交。但这有时会在我们合并分支时产生合并冲突。有替代品吗?
您可以在andbugfix-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'
然后,将这个新分支合并到主分支和生产分支:
git checkout master
git merge bugfix-a
git checkout production
git merge bugfix-a
这样,您应该能够在以后合并 master 和 production,Git 将足够聪明地确定选择哪些提交。
(单调——是的,它不是 Git——称这个工作流为daggy fix)
为每个修补程序创建一个单独的分支,并将其合并到您的开发分支和生产分支中。
gitflow 模型通常工作得很好,我建议检查一下: http: //nvie.com/posts/a-successful-git-branching-model/
您的 master 分支类似于他们的开发分支,您的生产分支类似于他们的 master
你可以使用 Gitflow。我认为“修补程序”可以处理您的情况。