将Submodule推送到GitHub

时间:2017-06-05 20:25:42

标签: git github

使用composer安装组件后,将所有代码推送到GitHub时出现问题。这是当前的设置:

  1. 创建了GitHub存储库。
  2. 克隆在已添加的本地和项目文件上的存储库。
  3. 有一个名为“origin”的遥控器。
  4. 使用“composer require”添加的组件。组件已成功安装到项目子文件夹。
  5. Composer使用两个遥控器创建了一个git子模块(在此子文件夹中)。 (a)“origin”指向组件作者github url。 (b)“作曲家”指向相同的网址且没有推送网址。
  6. 项目成功推送到GitHub,但不推送包含组件文件的git子模块。
  7. 如果我尝试将组件推送到项目“origin”,我会收到错误“更新被拒绝,因为远程包含您本地没有的工作”。
  8. 如何将这个git子模块组件代码放入我的GitHub仓库? GitHub中的文件夹是空的。

2 个答案:

答案 0 :(得分:0)

确保您已将文件正确添加到舞台区域并提交了它们。然后你可以尝试再次推动:

git add . #to add all files to stage
git commit -m "Your commit message here"
git push origin master #if master is your branch

一旦你说GitHub中的存储库为空,你就可以尝试强制推送

git push --force origin master

此外,有时,推送和文件在GitHub中可用之间会有一点延迟。

此外,您可以通过检查分支之间的差异来验证更改是否已正确发送到GitHub:

git diff --name-status master..origin/master

答案 1 :(得分:0)

深入挖掘,我发现组件已经将自己安装为git子模块。我已经更新了问题以反映这一点。标准的git push没有将它部署到github。我可能需要做一个“git push --recurse-submodules = on-demand”(或类似的)。

但为了简单起见,我决定删除子模块。必须运行以下命令才能删除子模块引用。

git rm --cached [path to submodule]

此外,installed.json显示“installation-source”= source。其他模块的价值分歧。所以我删除了所有组件文件并运行以下命令强制composer安装组件dist。

composer require [component] --prefer-dist
composer install --prefer-dist