【发布时间】:2011-06-12 01:50:31
【问题描述】:
在将我的更改与上游 master 合并时,我经常发现自己在执行以下操作:
git checkout somefeature
git checkout -b integration
git rebase master # resolving conflicts along the way
git checkout somefeature
git merge integration # or rebase, doesn't matter in this example
我经常会发现将集成分支合并回我的功能分支会导致一些冲突。我的第一个问题是,“如果我的集成分支是某个功能的后代并且我已经解决了与上游主服务器的冲突,为什么会发生这种情况?”
如果您想知道我为什么一开始就使用集成分支,这是为了防止由于合并失败而污染当前分支。
我目前的解决方法是这样做:
git checkout integration
git branch -f somefeature # overwrite the branch
现在的问题是我无法将更改推送回远程分支:
git push origin somefeature
! [rejected] somefeature -> somefeature (non-fast forward)
所以现在我必须删除远程分支并重新推送我的更改。这不是执行此操作的最佳方式,所以我想知道,“覆盖分支并将更改推送到远程分支的最佳方式是什么?”
【问题讨论】:
标签: git