远程 GitHub 中的灰色图标意味着什么

有人能告诉我为什么我把文件推到 github 的时候会有灰色的图标吗?在 app 目录中,应该有模型、视图和控制器,但是在远程 GitHub 中我无法单击。

enter image description here

50276 次浏览

看起来您创建了一个子模块,指向一个不可到达的远程位置。

参见 这个答案。绿色时,该图标将指向子模块。我猜在你的情况下是灰色的因为子模块配置不正确。

由于 .gitmodules不存在,它必须已经被删除,留下一个子模块没有远程信息。

如果进入 app键入 git remote -v,你也会看到这个模块指向哪里。目前无法联系到这个地方。

在类似的场景中,我添加了一个子模块并删除了 .gitmodules:

missing sub module

看起来你在文件夹中初始化了 git。从子文件夹中删除 git 文件(rm-rf) ,创建一个新的 repo 并重新初始化 git。

您已经在 app 目录中初始化了 git,但它找不到 remote.删除应用程序中的. git 文件。

[app(master)]$ sudo rm -r .git

或者显示文件夹中的隐藏文件并手动执行。然后重新提交并重新推送父文件夹的更改

git rm --cached <folder_name>

然后转到父目录并执行:

git add .
git commit -m "<your_message>"
git push --all

它内部已经有一个. git,因此看起来是灰色的。 也就是说它内部也初始化了 git。

在我的例子中,当部署到 Heroku 之前时,在项目的父文件夹中设置了一个 Git 存储库,我在根文件夹中初始化了一个 Git 存储库(其中包含 manage.py)。

然后我在项目的父文件夹中创建了一个新的 repo,处理模型视图和控制器的根文件夹变成了灰色。以下几点对我很有效:

  1. 删除父文件夹回购
  2. 创建新的 repo 没有,检查“ Initialize this itory with a README”,因为我们将导入现有的存储库。
  3. 在您的 root 文件夹 中,执行以下操作:

    Git Remote 添加起源“ github repo link”

    Git push-u 原点控制器

  4. 刷新您的 Github 回购和所有目录应该出现

我发现的最简单的方法是从本地删除文件夹并更新远程回购。导航到本地目录并剪切包含错误设置的文件夹。Git 子文件夹到另一个位置(本地回购,如桌面以外) ,这样你就可以纠正问题,并在以后复制回来,然后运行:

git submodule update

git add --all

git commit --all

git push

这应该删除的文件夹是灰色的远程回购。然后再次将文件夹复制到本地文件中,并像上面一样运行 add —— all commit —— all git push,当然首先要注意删除错误设置。为了避免同样的问题再次发生,需要事先从子文件夹中提取 git 文件夹; 要在 Linux 系统上找到这个文件夹,请使用文件夹中的 cntrl-h 查看文件夹中的隐藏文件,您将看到一个。Git 文件夹出现在导致问题的子文件夹中,只需删除该文件夹即可解决问题

Git 认为它是一个子模块,因为它内部有一个. Git 目录。

将目录更改为违规目录:

cd <offending git submodule>

删除其中的. git 目录:

rm -rf .git

更新 git 缓存:

git rm --cached <offending git submodule>

进入父目录:

cd ..

将目录添加到 git:

git add .
git commit -m "Changed submodule to directory"
git push --all