有人能告诉我为什么我把文件推到 github 的时候会有灰色的图标吗?在 app 目录中,应该有模型、视图和控制器,但是在远程 GitHub 中我无法单击。
看起来您创建了一个子模块,指向一个不可到达的远程位置。
参见 这个答案。绿色时,该图标将指向子模块。我猜在你的情况下是灰色的因为子模块配置不正确。
由于 .gitmodules不存在,它必须已经被删除,留下一个子模块没有远程信息。
.gitmodules
如果进入 app键入 git remote -v,你也会看到这个模块指向哪里。目前无法联系到这个地方。
app
git remote -v
在类似的场景中,我添加了一个子模块并删除了 .gitmodules:
看起来你在文件夹中初始化了 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,处理模型视图和控制器的根文件夹变成了灰色。以下几点对我很有效:
在您的 root 文件夹 中,执行以下操作:
Git Remote 添加起源“ github repo link”
Git push-u 原点控制器
我发现的最简单的方法是从本地删除文件夹并更新远程回购。导航到本地目录并剪切包含错误设置的文件夹。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