远程 GitHub 中的灰色图标是啥意思
Posted
技术标签:
【中文标题】远程 GitHub 中的灰色图标是啥意思【英文标题】:What does a grey icon in remote GitHub mean远程 GitHub 中的灰色图标是什么意思 【发布时间】:2013-11-04 05:48:28 【问题描述】:谁能告诉我为什么我将文件推送到 github 时出现灰色图标? app目录里面应该有models,views,controllers,但是在远程的GitHub我点不进去。
【问题讨论】:
【参考方案1】:git rm --cached <folder_name>
然后转到父目录并执行:
git add .
git commit -m "<your_message>"
git push --all
【讨论】:
请注意:--all
pushes all branches.【参考方案2】:
看起来你创建了一个子模块,指向一个无法到达的远程位置。
见this answer。该图标在绿色时将指向子模块。我假设在您的情况下它是灰色的,因为子模块配置不正确。
鉴于.gitmodules
不存在,它一定已经被删除,留下一个没有远程信息的子模块。
如果进入app
并输入git remote -v
,您也会看到该模块指向的位置。此地点目前无法访问。
在类似的场景中,我添加了一个子模块并删除了.gitmodules
。 GitHub 上的结果如下所示:
【讨论】:
当我尝试 git submodule update --init 它返回我在 gitmodules 中找不到路径'app'的子模块映射 我试过 git ls-tree --full-tree -r HEAD 它返回给我 100644 blob 6628083525c40f2abab01a69c4599d38380b18a5 Rakefile 160000 commit 60b600031853f5f4bbc0a28385caf5085bbfc app 每个目录都带有单词 blob 除了 app ... n app 中没有任何其他目录文件 ... 而在我的实际项目中 app 中,仍然有一些目录,如 Model , View , Controller 等cat .gitmodules
返回什么?不要发布实际网址
cat: .gitmodules: 没有这样的文件或目录【参考方案3】:
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
【讨论】:
这让我头疼 很好的答案。遵循这些步骤让我避免了很多困惑! 很好的答案。这让我免于困惑! 在尝试了几个替代答案之后,这是迄今为止最正确的答案。谢谢大家 应该是投票最多的。只是一件事,转到父目录,然后执行 git rm --cached 【参考方案4】:看起来你在文件夹中初始化了 git。从子文件夹中删除git文件(rm -rf)并创建一个新的repo并重新初始化git。
【讨论】:
非常简洁的答案!我刚进去,启用了隐藏文件,删除了项目中隐藏的 git 文件夹,然后重新上传——灰色文件夹图标现在消失了,github 上的一切都很好了。感谢您简洁明了的回答。【参考方案5】:你已经在 app 目录中初始化了 git,它找不到远程。 删除应用内的 .git 文件。。
[app(master)]$ sudo rm -r .git
或显示文件夹内的隐藏文件并手动执行。然后重新提交并重新推送父文件夹的更改
【讨论】:
【参考方案6】:我发现的最简单的方法就是从本地删除文件夹并更新远程仓库。导航到您的本地目录并将包含错误设置的 .git 子文件夹的文件夹剪切到另一个位置(本地存储库之外,例如桌面),以便您可以更正问题并稍后复制回来,然后运行:
git submodule update
git add --all
git commit --all
git push
这应该会删除远程仓库中灰显的文件夹。然后将文件夹再次复制回本地文件并运行 add --all commit --all git push 如上所述,当然首先要事先从子文件夹中删除错误设置的 .git 文件夹以避免同样的问题再次;要在 linux 系统上找到它,请使用文件夹中的 cntrl-h 查看文件夹中的隐藏文件,您会看到导致问题的子文件夹中存在一个 .git 文件夹,只需删除它即可解决
【讨论】:
【参考方案7】:它里面已经有一个 .git,因此显示为灰色。 即它内部也初始化了 git。
【讨论】:
就我而言,这实际上是问题所在,因为我在文件夹中有一个 .git 文件夹,然后它似乎会自动为该文件夹创建一个子模块。我不知道为什么这个答案被标记了?【参考方案8】:在我的例子中,在部署到 Heroku 时,我已经在根文件夹(具有 manage.py 的那个)中初始化了一个 git 存储库,在在项目的父文件夹中设置了一个 Git 存储库。
当我在项目的父文件夹中创建一个新的 repo 时,处理模型视图和控制器的根文件夹显示为灰色。以下对我有用:
-
删除父文件夹回购
创建新的存储库不选中“使用 README 初始化此存储库”,因为我们将导入现有存储库。
在您的根文件夹中使用 manage.py 的文件夹,执行以下操作:
git 远程添加源“github repo 链接”
git push -u 原点主控
刷新您的 Github 存储库,您的所有目录都应该存在【讨论】:
以上是关于远程 GitHub 中的灰色图标是啥意思的主要内容,如果未能解决你的问题,请参考以下文章