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