解决文件损坏导致的fatal: not a git repository (or any of the parent directories): .git

解决文件损坏导致的fatal: not a git repository (or any of the parent directories): .git

与平日碰到的情况不同,我的目录下有.git文件,但还是报这个错
2022/7/23:添加新的解决方案

1. 问题描述

解决文件损坏导致的fatal: not a git repository (or any of the parent directories): .git_第1张图片
离离原上谱。

2. 解决方案-1

其实就是.git文件夹坏掉了,最简单的就是把这个目录用未损坏的目录覆盖。举个例子,仓库地址为:https://github.com/mit-pdos/xv6-riscv.git。在原来文件夹所在的目录执行下述命令:

git clone https://github.com/mit-pdos/xv6-riscv.git xv6-riscv-new
mv xv6-riscv-new/.git xv6-riscv
rm xv6-riscv-new

如此一来就完成了飞赴

3. 解决方案-2

参考地址

发现.git/HEAD文件空了,这里本应该记录了所有Branches的信息,这意味着gitHEAD文件被损坏了。恢复步骤如下:

# 发现没有输出 
cat .git/HEAD
# 临时修补
echo 'ref: refs/heads/master` >.git/HEAD
# fsck修复损坏
git fsck

此后,运行git branch,报错:

git fatal: index file smaller than expected

说明Index文件出错,此时注意备份修改过的文件,然后我们准备删除Index文件,然后重置git

# 删除
rm .git/index 
# 重置
git reset

问题解决。

你可能感兴趣的:(操作系统,杂记,c语言,linux)