场景:
- 主分支开发
- 将 master 分支到一个 Feature 分支,并将其发送给 QA,其中包含一个 Feature
- 在 master 中开发更多
git checkout 功能
- 做一个小修复
- 将修复后的功能发送回 QA
git checkout master
git merge 功能
想象一下,当 Git 说“好吧,你想让 master 看起来像 Fix now”,然后扔掉我所有的“dev some more”更改时,我感到很惊讶。我需要它只应用与两个分支 fork 时不同的唯一标签。
我如何执行这个简单明了的场景?噩梦是我在 master 中进行相同的更改,然后当相同的更改进入“生产”分支时遇到不相关的不可调和的 merge 冲突...
最佳答案
如果没有人依赖你的功能分支(即如果没有人从你推送的 hat 分支中提取),我肯定会在 master
之上重新设置它的基线:
git checkout master
# make sure master is up-todate
git pull
# rebase my feature branch on top of master
git checkout myFeatureBranch
git rebase origin/master
这会在 master 之上重放您的修改,并且您可以在您的功能分支中本地解决任何冲突。
然后 merge 回到 master 是一个微不足道的快进
git checkout master
git merge myFeatureBranch
最后你可以推送 master
:上游仓库将再次接受这些更改作为快进 merge (你只是在 origin/master
之上添加新提交)
关于git - 如何将一个更改从旧分支 merge 到新分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20985036/