情景:
git checkout Feature
git checkout master
git merge Feature
想象一下,当Git说“好吧,你希望主人看起来像现在修复”时我感到惊讶,并且把我所有的“开发更多”改变掉了。我需要它只应用与两个分支分叉时不同的唯一#标签。
我如何执行这个简单的& amp;明显的情况?噩梦将是我在主人身上做出同样的改变,然后当相同的变化进入“生产”分支时,得到一个无关紧要的不可调和的合并冲突......
答案 0 :(得分:4)
如果没有人依赖你的功能分支(即如果没有人从你推动的帽子分支中拉出来),我肯定会在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上重播您的修改,您可以在功能分支中本地解决任何冲突。
然后合并回主人是一个微不足道的快进
git checkout master
git merge myFeatureBranch
最后你可以推master
:上游回购将再次接受这些更改作为快进合并(你只在origin/master
之上添加新的提交)
答案 1 :(得分:1)
你有两种可能性: 1 /您应首先合并您的功能上的主更改,潜在地解决您的冲突,然后当它正常时,将您的功能合并到主设备中。
git checkout master
git pull
git checkout Feature
git pull
git merge master --no-commit --no-ff
# Analyze the changes that will be merged into your Feature
git commit
git push
并在您的主人身上进行相同的合并
2 / Cherry选择你想要的提交,更新冲突并提交。
git cherry-pick _your_Hash_