我的情况与此类似,只是我的功能分支有更多提交
在此期间提交的错误修复也会影响我的功能分支。这就是为什么我想将我的功能分支重新绑定到主服务器。
我试图用git rebase master
(在我的功能分支上)这样做,最终陷入混乱。由于我的功能分支具有很高的提交次数,因此rebase需要永久性,并且在rebase过程及其所有冲突期间,我会不断丢失概述,包括旧的提交以及所有的提交。
在这种情况下我该如何正确地做到这一点?我做错了什么?
答案 0 :(得分:0)
'不断丢失概述'听起来像你正在使用Git的UI的问题。许多人喜欢终端,但确实非常强大,但是git不是一个直观的方案,终端会让它变得更糟。
我使用TortoiseGit使用{{3}}进行了更大的变更,这些冲突只会导致看似适当的挫折感。
学习一个新的git工具当然是解决这个问题的麻烦。然后,我会建议一个合适的用户界面作为基于文本的控制台的替代。它并不像终端消失!
第二个选项是将master
合并到feature
,如果你想要一个不错的线性git历史,这可能不是一个好的选择。
答案 1 :(得分:0)
如果你想 rebase 你的整个历史记录,你将需要在master上重新播放每个单独的提交,并做一些额外的工作来保持sub-feature -> feature
合并
我建议不要这样做。要将bugfix
集成到feature
分支中,您可以:
将master(及其bugfix)合并到功能中:
git checkout feature
git merge master
这将是最直接的,git
- 是这样做的方式
樱桃选择bugfix
提交到功能:
git checkout feature
git cherry-pick bugFix
这不是最干净的方式,但它确实有效
稍后,您可能必须记住,当bugFix
合并到feature
时,如果您在master
修改的文件上发生冲突,则bugfix
出现在两个分支上p>
首先简化feature
和sub-feature
的历史记录,然后在主版本上重新简化版本