问题描述

今天在检查之前git进远程仓库的代码时,发现有一个文件有白色箭头,但是点击后无法打开。

通过查询文档,发现了问题所在。在此记录。

原因

箭头可能意味着这是一个子模块

子模块的意思: 有一个指向另一个git版本控制项目/储存库提交的链接。

我是用的别人的Hexo主题,他的代码是包含”.git”文件夹和”.gitignore”文件,属于子模块,所以会出现箭头。

解决方法

!!!在进行所有操作前一定要对目标文件夹进行备份!!!

出现了问题可以及时回滚,就不怕操作出问题导致项目文件丢失了。这很重要!

在git bash中输入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
git pull #先拉取远程仓库代码下来

#删除子文件夹里面.git文件,我这里是删除了"blog/themes"文件夹里面的.git文件和gitignore文件

git rm -cached + 文件夹路径 #删除缓存,我是建议打不开的文件夹全部删掉,注意文件夹的名字需要写清楚路径,我这里用的是"blog/themes"

#如果遇到删不掉的情况使用命令:rm -rf + 文件夹路径

#然后重新推到远程仓库

git add --all
git commit -m '备注'
git push <remote_repository_name> <branch_name>

在处理期间由于看了别人的解决办法都是使用 “git add .” 命令,一直失败,文件还是带箭头的打不开,后来发现正是提交到缓存区的命令出问题了,应该使用 “git add –all” 命令。

  • “git add .”命令并不会记录你在工作目录里的删除操作,也就是你删除的文件记录并不会被提交到缓存区,所以你还是会把在本地删掉的git文件传上去,那不是等于没有删除吗。

  • “git add –all”命令则会记录你在工作目录里的所有操作,包括删除操作。再次上传之后就完成了。