Git rebase工作流程 - 将错误修正添加到"稳定"分支

Cmd*_*ozy 3 git

对于我正在研究的这个项目,我们正在使用一个相当标准的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)

我遇到的问题是以下情况:

  1. master与之相比stable,有许多新提交,因为刚刚推出了一项新功能用于测试.
  2. 提交master完全没有准备好合并stable.
  3. 发现了一个错误stable,需要立即修复.

我不能简单地添加bugfix stable,然后master在其上面进行rebase ,因为其他人已经检查过了master.我无法添加错误修复master,然后将其合并到stable,因为master包含完全没有准备好使用的提交.最后,我不想只是修正错误的同时添加到年底stablemaster,因为这将使下一个git checkout stable && git merge master突破.

如何调整工作流程以适应这种情况?我想避免重复提交(即,stable以相同的提交两次结束,使用不同的提交哈希)或合并提交.

目前,因为这种情况不上来,很多时候,我只是重订masterstable,并确保每个人都拥有它签出知晓.不过,我想知道是否有更干净的方法来实现这一目标.

Aje*_*i32 5

修复错误stable,然后将其合并到两个stablemaster.

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修复所以应该不会有冲突,当您合并masterstable更高版本.

  • @CmdrMoozy不幸的是,我不确定如果没有重复提交,有一种避免这种情况的好方法. (2认同)