我在工作中使用 git-svn 与我们的 Subversion 存储库进行交互。我创建了一个分支(我们称之为 FeatureBranch)来处理一个新特性,但不得不切换回主分支来处理其他事情。当我开始研究应该在 FeatureBranch 上做什么时,我忘记再次检查 FeatureBranch,并在意识到我做了什么之前向 master 分支做了几次提交。
我最初计划执行以下操作来解决这个问题(我还没有将我的更改提交到 Subversion,所以它们都被归为我最近所做的提交):
git checkout FeatureBranch
git merge master
git checkout master
git reset --hard HEAD~n
其中n是我想从主分支中删除的提交数,因为它们现在将在 FeatureBranch 中。但是,git merge在合并到另一个分支时似乎不会保留历史记录(它显示为单个提交)。如何只将 git 中的某些提交合并到另一个分支,同时保留历史记录?我以前听过樱桃挑选这个词,这是我应该研究的功能吗?