合并两次commit为一次commit

问题:

一段时间之前提交了commit,但是分支没有被合并。领导要求继续加功能,于是在本地分支已有的基础上,又进行了二次开发。开发之前为了和远程代码的主分支同步,将dev合并到了当前分支(完全没有必要的操作)。二次开发结束之后需要提交代码,但是leader要求把上次的提交和这次的提交合到一起。问题在于,中间进行了dev合并到当前分支的操作,导致上次提交的commit无法撤回。

解决:

首先,远程分支上提交的代码是没有合并过dev的,所以在本地建一个新的分支,和远程分支绑定,就可以拿到未合并之前的代码,从而也可以进行撤销commit操作。在这之前,二次开发的内容通过stash存起来,再切到新分支上,通过stash pop拿出二次开发的内容。这时候两次修改的内容就都拿到了,然后就可以进行远程推送。注意此时我们的新分支绑定了远程分支,两个名字是不对应的,所以简单起见,新分支直接解绑原来的远程分支,然后推送就可以了。

用到的命令:

从指定远程分支创建本地分支 并切换到给分支 git checkout -b 本地分支名 origin/远程分支名

解绑远程分支 git branch --unset-upstream

吸取的教训:

以后没提交之前不要随便merge

posted @   qiao101  阅读(232)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示