问题描述
-
在 ubuntu 20.04 平台上,编译Linux 内核时,打算使用 git 进行代码的管理,工程解压完,发现无法使用
git init
初始化 git 仓库 -
报错信息如下:
rtt@ubuntu:~/rtt/linux$ git init
fatal: cannot copy '/usr/share/git-core/templates/info/exclude' to '/home/rtt/rtt/linux/.git/info/exclude': No such file or directory
问题分析
-
开始以为是工程的权限问题,甚至重新安装了 git,发现依旧无法解决问题
-
然后使用
sudo git init
,问题依旧!
问题解决方法
-
后来我在 windows 上查看代码时,忽然发现工程下已经有了
.git
目录。 -
因为只有已经使用了
git
管理的目录,才会有这个目录,但是这个.git
目录的内容很少,应该这个工程之前是作为git submodule
子仓库管理的,所以仓库的管理内容,也就是仓库本身放在了 主仓库的.git
目录下。 -
所以找到了解决方法:先删除这个
.git
目录 -
删除
.git
目录后,再次git init
,一切正常了
rtt@ubuntu:~/rtt/linux$ rm -rf .git
rtt@ubuntu:~/rtt/linux$ git status
fatal: not a git repository (or any of the parent directories): .git
rtt@ubuntu:~/rtt/linux$ git init
Initialized empty Git repository in /home/rtt/rtt/linux/.git/
- 问题解决了
小结
-
如果遇到类似的问题,如
git init
无法执行成功,首先需要查看当前目录下,是否已经存在了.git
目录,也就是已经使用git
管理了 -
注意
git submodule
子仓库,默认仓库的内容都保存到 主仓库了,所以这个.git
目录下没有什么信息,可以删除,重新git init
初始化 git 仓库,进行代码的管理