git本地分支和stash内容报错消失的问题_相关技巧

来源:脚本之家  责任编辑:小易  

本地一个长期更新的项目,git log突然报错:

xxx@yyy:~/android/project/kernel/.git$ git log .
fatal: your current branch 'project-dev' does not have any commits yet

如果git status,发现文件全部是new状态.

如果git branch -v, 发现本地分支信息消失.

如果git stash list, 也没有任何消息.

看来, 即使git本身如此优秀, 也是避免不了他自己出错的时候-_-

一. 解决git log:

查看 .git/objects 文件夹, 发现提交都在, 说明有救

ls .git/refs/heads 文件夹, 发现自己的project-dev分支不见了.

平常我都是在secureCRT环境下作业, 并自动保存操作记录. 所以,很容易通过 grep -rn 'git log'找回原来提交的commit信息. 于是, 找到project-dev分支的最新的提交commit id是1f37a1b5706b3877c693bab220a31d312043fc1c.

于是执行 vi .git/refs/heads/project-dev, 并把1f37a1b5706b3877c693bab220a31d312043fc1c保存在此文件中.

git log和git branch -v, 原来提交信息都回来了.

二. 解决git stash list内容不见的问题.

cat .git/logs/refs/stash 文件,找到自己想要的stash id:

xxx@yyy:~/android/project/kernel$ cat .git/logs/refs/stash
0000000000000000000000000000000000000000 6d83090b5d140597866f32b5dbbca642acab3cba ...     On project-dev: enable HDMI display
...//...表示省略内容
25ccdba070ac09929c6f2a1f13b7d29a4b59df5b 8866f78b20047093ff8d1a517868ccce688a5c4b ...     On project-dev: wifi&bt temp

以上中, 0000000000000000000000000000000000000000是最原始的内容,不对应任何stash提交, 6d83090b5d140597866f32b5dbbca642acab3cba是第一个. 8866f78b20047093ff8d1a517868ccce688a5c4b是最后一个. 想找的内容是 "wifi&bt temp"提交的内容, 对应提交就是8866f78b20047093ff8d1a517868ccce688a5c4b.

于是, 执行git show 8866f78b20047093ff8d1a517868ccce688a5c4b内容看看, 正确.

再次执行以下指令保存此stash为diff文件:

git show 8866f78b20047093ff8d1a517868ccce688a5c4b > wifi.bt.diff

最后, 执行git apply打入diff文件.

git apply wifi.bt.diff

对其他想保存的stash id内容做同样的操作.

到此这篇关于git本地分支和stash内容报错消失的文章就介绍到这了,更多相关git本地分支和stash报错内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

您可能感兴趣的文章:git的远程分支的作用和本地分支有什么区别详解git使用小结(本地分支与远程分支、git命令)Git获取本地分支对应的远端服务器分支名的方法详解idea中Git的Stash Changes和UnStash Changes用法git stash暂存的操作方法

  • 本文相关:
  • 在linux下搭建git服务器的方法详解
  • 为什么使用框架 使用框架的优缺点
  • 详解git reset --hard 和 git reset --soft区别
  • git设置忽略文件.gitignore的方法
  • webstorm 遇到的问题总结
  • 彻底理解cookie,session,token的使用及原理
  • vscode常用知识小结
  • git详细安装教程及下载太慢的解决办法
  • gitlab使用外部提供的redis缓存数据库的方法详解
  • 高性能web开发 web性能测试工具推荐
  • Git怎么推送本地分支到远程新分支上面去
  • git pull会把本地未提交修改覆盖吗?
  • git怎么知道哪个文件冲突
  • git如何放弃所有本地修改
  • git stash之后怎么提交代码
  • 如何查看git stash内容
  • git stash 前需要add,吗
  • git stash执行后,我本地未add,未commit的文件全没...
  • git:如何从另一个分支复制目录中的所有文件
  • git reset 会删除stash的内容吗
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全javascriptasp.netphp编程ajax相关正则表达式asp编程jsp编程编程10000问css/htmlflex脚本加解密web2.0xml/rss网页编辑器相关技巧安全相关网页播放器其它综合dart首页相关技巧git的远程分支的作用和本地分支有什么区别详解git使用小结(本地分支与远程分支、git命令)git获取本地分支对应的远端服务器分支名的方法详解idea中git的stash changes和unstash changes用法git stash暂存的操作方法在linux下搭建git服务器的方法详解为什么使用框架 使用框架的优缺点详解git reset --hard 和 git reset --soft区别git设置忽略文件.gitignore的方法webstorm 遇到的问题总结彻底理解cookie,session,token的使用及原理vscode常用知识小结git详细安装教程及下载太慢的解决办法gitlab使用外部提供的redis缓存数据库的方法详解高性能web开发 web性能测试工具推荐2019最新的pycharm激活码(推荐)进制转换算法原理(二进制 八进制eclipse 格式化代码时不换行与自微信小程序设置http请求的步骤详从console.log说起(console.log详几款开源的中文分词系统十进制负数转换为二进制、八进制抓包工具fiddler的使用方法详解(url 长度有限制吗?vs快捷键 用好ctrl+enter与ctrl+shift+en永久解决vscode终端中文乱码问题ospf路由协议详解算法系列15天速成 第九天 队列git别名的使用intellij idea卡死,如何优化内存git 教程之标签详解使用swipe方法模拟屏幕滑动与手势密码绘制手机中点击网页链接实现拨号或保存电话功
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved