本地一个长期更新的项目,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本地分支,git,stash报错

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com

评论“git本地分支和stash内容报错消失的问题”

暂无“git本地分支和stash内容报错消失的问题”评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。