项目描述:
本地有master分支,dev分支。从dev分支中新建了三个任务,小1,小2,小3。这三个任务完成后感觉没问题了,就勤快的把它们都合并到了dev分支中。开开心心去睡觉了。
第二天,项目经理说小1,小2都不好看,现在只要小3,你把小3合并到dev推送到远程吧!我的天哪!这应该怎么办。。。
在dev创建了三个分支小1,小2,小3
每一个分支都创建了自己的文件夹如图
然后都提交了本地代码如图,依次提交小1,小2,小3,三个分支三个颜色,然后按照顺序展示,这个图还是不错的。
现在就是合并代码了,用dev去合并小1,小2,小3。
工作目录里就有了小1,小2,小3。
然后就是删除小1,小2,小3分支。
好了现在怎么办!领导说dev里只能有小3!
解决思路:
首先要回滚到最初创建这三个分支的起点那里,然后就是把小3分支恢复出来,在单独合并一下小3分支就可以啦。
1、回滚的命令非常简单,目标也就是图中备注为工作的那个节点(6e5b23e)。
git reset --hard 6e5b23e
2、找回小3的分支。你现在都没有日志,所以需要一个能看所有日志的命令 reflog
git reflog
这里找到了小3的提交id,就用它检出一下小3来。
git checkout c08e83a
他这里的意思是现在是一个游离的状态,让新建立一个分支,命令都给写好了。git checkout -b 新的分支名字
git checkout -b 新小3
这样小3的分支就恢复回来啦!
然后再进新dev的合并就可以了!大功告成!