0

git merge --squash 是我将另一个功能分支合并到我的主分支中所做的事情,只是后来意识到我丢失了一些重要的历史记录,这些历史记录是功能分支的一部分。

如果在我的合并提交之上有很多提交到主分支,我如何将历史记录从功能分支返回到主分支?

如果我再次将功能分支合并到我的主分支中,它会解决问题吗?

4

2 回答 2

0

如果您确实知道您在主分支之外留下了哪些提交,那么只需cherry-pick将它们一个一个(git cherry-pick <COMMIT-SHA>每个)或使用rebase --interactive.

签出功能分支后,执行git rebase --interactive master(假设master是您的主分支)。您的$EDITOR将弹出,您的功能分支中的提交列表不在您的主要分支中,每个提交列表都由一个pick常量和简短的 SHA 散列组成。删除你知道你已经压缩到的提交行master并保存该文件将使git他们批量挑选它们。当然,如果发生冲突,您必须解决冲突,但是如果发生大冲突(例如,80% 的提交有冲突)可能是一个警告,表明您正在应用之前合并的提交。

于 2013-10-10T15:52:01.827 回答
0

如果你在特性分支中合并,这可能看起来有点傻,因为你在壁球合并和特性分支中有类似的变化,但历史会在那里。

如果您在功能分支中已编辑的相同位置更改了某些内容,那么您很可能必须解决一些合并冲突。

于 2013-10-10T13:48:31.870 回答