首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >撤消git合并--squash

撤消git合并--squash
EN

Stack Overflow用户
提问于 2013-10-10 21:44:38
回答 2查看 380关注 0票数 0

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

如果在合并提交的顶部已经有许多提交进入主分支,我如何将历史记录从功能分支恢复到主分支?

如果我再次将特征分支合并到我的主分支中,会解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2013-10-10 21:48:32

如果您在feature分支中合并,这看起来可能有点傻,因为您在squash合并和feature分支中有类似的更改,但历史记录将在那里。

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

票数 0
EN

Stack Overflow用户

发布于 2013-10-10 23:52:02

如果您确实知道在主分支中遗漏了哪些提交,那么只需逐个对它们执行cherry-pick操作(每个分支都使用git cherry-pick <COMMIT-SHA>),或者使用rebase --interactive

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19297504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档