Git ---游离状态下的commit 分支切换与找回

1 篇文章 0 订阅

Git游离状态

什么是游离状态呢?
我不知道大家有没有遇到过commit后切换到别的分支,再想切回来的时候发现找不到刚刚提的verson了,因为你可能没注意到刚才提交的分支是哪个

举个可能遇见的例子:
你可能在公司用idea检出了以前的版本,回家后继续开发,并没有看到右下角显示的是git:ui123…asd0,而不是git:dev或git:master,然后提交,提交时发现并不是在dev,顺手切回dev打算合并,切到dev后发现找不到刚才的commit了

为什么找不到刚才提交的分支了呢?
你可能很绝望,但别害怕,只要提交过了,本地的git都会帮你记录下来,那为什么会找不到呢?因为Head没指向任何的分支,或者说指向了一个没有名字的分支,当你commit时会提示你是否创建新的分支,实际上分支名就是你的commit_id,但你拒绝了创建的请求,只是完成了提交,所以在所有分支中并没有你此次提交的分支

如何找回

那如何找回‘丢失’的代码?
第一种利用commit_id去新建分支,达到控制版本的目的:

$git branch callback commit_id

//commit_id的值可以查看终端的命令  根据不同情况执行不同的查询语句

1.上面commit_id为你提交时拿到的id,通过分支名去操作id
2. 切换回工作分支,并合并刚刚新建的分支

$git checkout dev

$git merge callback 

$git push

3.最后删除掉之前创建的分支就好了

$git branch -d callback 

第二种方法:
如果你用idea来写程序,提交也是在idea中进行的,可以这样查看:

1.在项目上右键—>local History —->show History

这里写图片描述

2.在弹出的框中左侧部分找到你提交到本地的verson记录 —> 根据右侧显示的那次verson所更改的文件判断是想要的版本—>右键Revert

这里写图片描述

总结

Git有完善的控制体系,即使不应用可视化程序,也能很好的控制版本问题,每一次提交都是对本地版本的一次保存,但不提交程序就真的没了,commit后保存在本地的库中,push后才会推到远端。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值