对于我正在研究的这个项目,我们正在使用一个相当标准的git rebase工作流程.也就是说,我们将在feature分支机构中完成所有工作.功能准备好测试后,其他人将:
git checkout master
git merge feature
Run Code Online (Sandbox Code Playgroud)
我们还有一个stable分支,基本上是一个不那么尖端的副本master.在master经过其他人的彻底测试后,有人会:
git checkout stable
git merge master
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是以下情况:
master与之相比stable,有许多新提交,因为刚刚推出了一项新功能用于测试.master完全没有准备好合并stable.stable,需要立即修复.我不能简单地添加bugfix stable,然后master在其上面进行rebase ,因为其他人已经检查过了master.我无法添加错误修复master,然后将其合并到stable,因为master包含完全没有准备好使用的提交.最后,我不想只是修正错误的同时添加到年底stable和master,因为这将使下一个git checkout stable && git merge master突破.
如何调整工作流程以适应这种情况?我想避免重复提交(即,stable以相同的提交两次结束,使用不同的提交哈希)或合并提交.
目前,因为这种情况不上来,很多时候,我只是重订master到stable,并确保每个人都拥有它签出知晓.不过,我想知道是否有更干净的方法来实现这一目标.
修复错误stable,然后将其合并到两个stable和master.
git checkout -b bugfix stable
# Make and commit changes
git checkout stable
git merge bugfix
git checkout master
git merge bugfix
Run Code Online (Sandbox Code Playgroud)
这样一来,只有一个提交(或一组提交的),在它的bug修复所以应该不会有冲突,当您合并master到stable更高版本.
| 归档时间: |
|
| 查看次数: |
863 次 |
| 最近记录: |