stromxu 的专栏

学习和记录Coding的点滴,个人博客:http://xuhaoblog.com

git 本地提交未Push 自动切到其他版本的解决姿势

原文链接请标明:
http://blog.csdn.net/u011974987/article/details/52913925
本文出自:【stromxu的博客】
欢迎访问我的博客,增加点儿人气~~Xuhao’s Blog


现象描述:

我在现有的分支上进行修改代码,使用git提交本地代码后,SourceTree上面没有记录,我就纳闷了,我原本以为我提交到其他项目了,仔细查看了几个项目的提交记录也都没有,于是退出SourceTree,在打开这个项目还是没记录,并且最新修改的分支在两个版本之前的Develop v2.2.2分支(这个我记得我是在最新的分支上开发的,不排除我在其他分支上进行开发的情况),不过这个都不是事儿,怎么恢复修改的代码到最新的分支上面呢?下面提供解决方案~~

解决方案:

  1. 打开gitbash 命令行;
  2. 输出git log 查看不到提交历史的历史记录;
  3. 输入git reflog可以查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录。

这里写图片描述

上面红色箭头指的地方就查看不到记录。
4. (上面已经说明了,当前最新提交的分支在v2.2.2上)然后我们要恢复5d3c053 这个分支到v2.2.4上面,那我们就要使用git cherry了。
5. 使用 cherry-pick. 根据git 文档:

Apply the changes introduced by some existing commits 

就是对已经存在的commit 进行apply (可以理解为再次提交)

简单用法:

git cherry-pick <commit id>

例如:

$  git checkout old_cc
$  git cherry-pick 67fbeee# 这个 67fbeee号码,位于:
Commit: 67fbeee108798cf43895db16cdcf91c2b1d5298d [67fbeee]
Parents: fa10c134b8
Author: xuhao <504105930@qq.com>
Date: 2016102118:27:14
Labels: tag:, v2.2.3
更改版本号,解决发布问题标题问题

如上图:
由于adb install 这个记录可能在v2.2.2分支提交的,现在要把这个分支提交到v2.2.4分支上;

结果如下:

这里写图片描述

最后之前丢失的那条记录也出来了,成功的解决了~~,sourceTree记录图如下:

这里写图片描述

总结:不管用什么工具,只有熟练掌握了命令才是王道啊~

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011974987/article/details/52913925
个人分类: 【Git】
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭