撤消git合并--挤压

撤消git合并--挤压,git,merge,Git,Merge,git merge——squash是我将另一个特性分支合并到我的主分支中所做的事情,只是后来才意识到,我丢失了一些重要的历史,这些历史是特性分支的一部分 如果在合并提交的基础上有很多提交到主分支,那么如何将历史从功能分支返回到主分支 如果我再次将功能分支合并到我的主分支中,它会解决问题吗 如果在要素分支中进行合并,这可能看起来有点傻,因为在挤压合并和要素分支中有类似的更改,但历史将在那里 如果您在功能分支中编辑过的相同位置更改了某些内容,则很可能需要解决一些合并冲突。如果您确实知道主分支中遗漏了

git merge——squash是我将另一个特性分支合并到我的主分支中所做的事情,只是后来才意识到,我丢失了一些重要的历史,这些历史是特性分支的一部分

如果在合并提交的基础上有很多提交到主分支,那么如何将历史从功能分支返回到主分支


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

如果在要素分支中进行合并,这可能看起来有点傻,因为在挤压合并和要素分支中有类似的更改,但历史将在那里


如果您在功能分支中编辑过的相同位置更改了某些内容,则很可能需要解决一些合并冲突。

如果您确实知道主分支中遗漏了哪些内容,只需对它们逐个执行
cherry pick
操作(
git cherry pick
),或者使用
rebase--interactive


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

同意,冲突必须解决。有没有其他方法可以让历史记录恢复?你也可以选择相关的提交。