【问题标题】:Git FULL push , no refs?Git FULL push,没有参考?
【发布时间】:2013-05-01 11:08:25
【问题描述】:

我正在尝试将我的 .vim 目录推送到 github。

我正在使用pathogen,所以在.vim/bundle下,我有一些插件,它们也是git repos。

当我推送到 github 时,它们会转换为绿色文件夹图标(据我了解,这是对其他存储库的引用)。

这是一个屏幕截图。

我想要我的.vim 的完整备份,所以我也可以对我的其他机器执行git clone

  • 我可以从 github 全功能克隆克隆 repo 吗?我在 .vim/bundle 下得到空目录。

  • 或从我的本地计算机完全推送它,并避免将那些绿色文件夹放在一起?

【问题讨论】:

  • 试试git rm --cached bundlegit add bundle/*/
  • 第一个命令删除了 bundle 下的文件,第二个命令又添加了它。所以 git status 没有显示任何东西,如果可能的话,我应该再次提交并推送吗?

标签: git vim github git-push git-clone


【解决方案1】:

What does this green icon mean in a github repository?

看起来像子模块。在您的 git 源中检查名为 .gitmodules 的文件。

如果此文件存在,您需要克隆存储库,如下所示:

git clone address
git submodule init
git submodule update

【讨论】:

  • 谢谢。我在 .git 下没有 .gitmodules 文件
  • 不在 .git 下,而是在你的 git 根目录下。
  • 哦好吧,我有.git,.gitignore
  • 做了``git ls-files | grep vim-blade'' 返回一些文件? (或任何其他回购?
  • 不在克隆的仓库中。 Git 无法提交空目录。
【解决方案2】:

Git 将检测子目录中的 git 存储库,并默认添加它们 - 仅注意其当前签出提交的 SHA。您可以通过运行git add subfolder/* 来规避这种行为。但这仅在给定的子文件夹当前不是缓存的一部分时才有效。因此,在您的情况下,您需要运行这些命令(假设您的文件夹名称中没有空格):

git rm --cached bundle
ls --color=never bundle | xargs -t -n1 -I {} git add "bundle/{}/"

【讨论】:

  • 谢谢!!我必须为 bundle/ 下的每个文件夹手动执行此操作,但它有效! 注意 xargs 命令不起作用,这是致命的输出:pathspec 'bundle/{}/*' did not match any files.
  • 我编辑了答案并添加了正确的 xargs 命令格式。
  • 很高兴我能帮上忙,但我很困惑——我在发布它之前尝试了该命令,它对我有用。而且我看不到任何编辑?
猜你喜欢
  • 1970-01-01
  • 2023-03-26
  • 2018-11-05
  • 1970-01-01
  • 2023-03-04
  • 2018-05-26
  • 2012-04-07
  • 2017-11-13
  • 2021-12-31
相关资源
最近更新 更多