我是GIT的新手并且正在努力解决这个问题。我有一个存储在存储库中的网站。该网站需要一个主题文件夹,该文件夹设置为单独的存储库。
我已成功使用git submodule add
命令将主题存储库添加到我的网站。
所以现在我有一个主题儿童repro的网站repro。子模块的文件显示在我的网站文件夹中。
我正在尝试将整个主网站repro推送到可以工作的远程服务器,但不会推送主题(子模块)的文件。
答案 0 :(得分:2)
子模块非常像一个独立的存储库 - 它对于它是否作为子模块包含在父存储库中一无所知。父存储库对子模块的了解不多 - 它应该在树中的位置,子模块应该提交的内容以及最初从子模块中克隆的URL ...
我认为没有一个命令会为你推送所有子模块 - 更新子模块中的某些文件时的事件序列应为:
cd theme
# [Change or add some files, etc.]
# Now commit those changes:
git commit -a
# Push them to the origin repository, assuming you're on the master branch:
git push origin master
# Change up to the parent repository:
cd ..
# Create a commit with the new version of that submodule:
git add theme
git commit -m "Committing a new version of the theme submodule"
# Now push the commit that includes a pointer to the new submodule
# version in the parent repository:
git push origin master
此处的典型问题是在父存储库中推送提交,该提交引用了尚未从子模块版本推送的子模块版本。您可能会发现创建脚本很有帮助,这样您就不会忘记任何这些步骤。
答案 1 :(得分:0)
我只想将主题目录添加为远程 - 而不是子模块。管理您自己分支中的文件位置。主题的后续更新应移至正确的文件夹。
现在,推送将按照您的预期行事。
希望这有帮助。