突然断电导致git分支错误解决办法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了突然断电导致git分支错误解决办法相关的知识,希望对你有一定的参考价值。

参考技术A Local Branches 里面也找不到当前分支, 所有文件变成了untracked. 分支显示unknown branch/commit .

程序正在编译, 趁着编译的时间修改了一下程序, 按保存的时候发生蓝屏, 自动重启后就是这个样子了. 原因不明.

查看源文件是好的, 编译能够正常通过. 只是蓝屏前按保存的那一些修改没有了. 程序在就好, 备份好源文件随便折腾一下看看能不能修好, 毕竟本地分支有很多commit还没有push.
进入git bash,
git status 查看当前仓库状态

发现分支名称正常显示(有救?), 但是所有文件变成了untracked.

查看一下log是否正常

显示当前分支损坏了.
查看一下.git文件夹下文件是否正常

损坏前提交的log还在, hash也能查到, 靠谱, 估计能修好
查看一下当前HEAD指向位置

显示指向seg, 目前看来一切正常, 找到seg, 看看seg里面是否指向当前commit的hash

这是什么鬼, 查看一下其他分支显示的内容是正常的

看来是找到病根了, 动个手术吧, 把log中的hash粘贴过来试试.
把标注的hash复制到seg中

哎? 你的小尾巴是怎么回事?!

好了, 站起来走两步.
我的天, 还没站起来就晕过去了

按照提示路径查看一下文件, 发现文件已经损坏, 截肢吧!

再站起来看看.

多走两步

看来恢复的不错, 之前修改也都存在, 那么就在此提交就好了.
噗, 一口血吐了出来.

再次提交, 提交成功!
执行 git fsck --full

都正常了, 出院.
ps: 以后还是经常push吧, 这样就可以直接使用"复活币"了.

git代码冲突,导致分支pull下载不了解决办法?

开发找我说git的自动化上线用不了了,使用git下载分支然后报错如下:

git pull origin shk-master
From ssh://git.ihangmei.com:65022/H5-web/portal_train
 * branch            shk-master -> FETCH_HEAD

*** Please tell me who you are.

Run

  git config --global user.email "[email protected]"
  git config --global user.name "Your Name"

to set your account‘s default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got ‘[email protected](none).(none)‘)

这个报错是应为主库和分支代码合并的时候发生冲突,导致了分支代码不能被pull下来,

解决办法就是把主库回退到最新提交的版本上,然后再查看git状态,没问题了就直接拉分支就OK了.

使用git log找到最新的版本id

git reset --hard 139dc(版本id)

#回退git版本

git stash 

#查看git状态

git checkout -b shk-master

#指定git本地分支名

git pull origin shk-master

#下载分支代码


OK到此问题解决

本文出自 “Forand” 博客,请务必保留此出处http://853056088.blog.51cto.com/12966870/1947177

以上是关于突然断电导致git分支错误解决办法的主要内容,如果未能解决你的问题,请参考以下文章

git异常操作解决办法合集

Linux系统 断电后 开机进行到这里不动了 过一会就重启 求解决办法

git push 新建本地分支提交到远程分支失败解决办法

SourceTree推送分支时遇到ArgumentException encountered错误的解决办法

git删除远程分支后,本地git branch -a 依然能看到的解决办法

git切换分支导致代码丢失