git版本回滚,分支删除后恢复,多分支合并后剔除某个分支。

项目描述:

  本地有master分支,dev分支。从dev分支中新建了三个任务,小1,小2,小3。这三个任务完成后感觉没问题了,就勤快的把它们都合并到了dev分支中。开开心心去睡觉了。

第二天,项目经理说小1,小2都不好看,现在只要小3,你把小3合并到dev推送到远程吧!我的天哪!这应该怎么办。。。

 

在dev创建了三个分支小1,小2,小3

git版本回滚,分支删除后恢复,多分支合并后剔除某个分支。 

每一个分支都创建了自己的文件夹如图

git版本回滚,分支删除后恢复,多分支合并后剔除某个分支。

 然后都提交了本地代码如图,依次提交小1,小2,小3,三个分支三个颜色,然后按照顺序展示,这个图还是不错的。

git版本回滚,分支删除后恢复,多分支合并后剔除某个分支。

 现在就是合并代码了,用dev去合并小1,小2,小3。

git版本回滚,分支删除后恢复,多分支合并后剔除某个分支。

 工作目录里就有了小1,小2,小3。

git版本回滚,分支删除后恢复,多分支合并后剔除某个分支。

 然后就是删除小1,小2,小3分支。

git版本回滚,分支删除后恢复,多分支合并后剔除某个分支。

 好了现在怎么办!领导说dev里只能有小3!

解决思路:

  首先要回滚到最初创建这三个分支的起点那里,然后就是把小3分支恢复出来,在单独合并一下小3分支就可以啦。

1、回滚的命令非常简单,目标也就是图中备注为工作的那个节点(6e5b23e)。

git reset --hard 6e5b23e

git版本回滚,分支删除后恢复,多分支合并后剔除某个分支。

 2、找回小3的分支。你现在都没有日志,所以需要一个能看所有日志的命令 reflog

git reflog

git版本回滚,分支删除后恢复,多分支合并后剔除某个分支。

这里找到了小3的提交id,就用它检出一下小3来。

git checkout c08e83a

git版本回滚,分支删除后恢复,多分支合并后剔除某个分支。

他这里的意思是现在是一个游离的状态,让新建立一个分支,命令都给写好了。git checkout -b 新的分支名字 

git checkout -b 新小3

git版本回滚,分支删除后恢复,多分支合并后剔除某个分支。

 这样小3的分支就恢复回来啦!

然后再进新dev的合并就可以了!大功告成!

git版本回滚,分支删除后恢复,多分支合并后剔除某个分支。

上一篇:Git语法之文件的还原,Checkout使用


下一篇:git 开发测试分支失误合并到了master分支,怎么还原?