推送后 heroku 不更新子模块

heroku doesn't update submodules after push

我在 heroku 上托管了一个包含子模块的应用程序。子模块包含多个子模块。子模块以 github 仓库的 http 地址形式存在。

app
 |- submodule1
 |- other dirs

submodule1
 |- submodule2
 |- submodule3
 |- other dirs

我在几个 sob 模块中进行了更改,然后提交了所有内容(包括子模块)并推送到 github。我可以验证子模块是否指向正确的提交,即可以通过 git clone --recursive ....

获得回购协议

我推到github后,我推到了heroku。应用程序本身已更新,但子模块保持不变(即使它们已提交并推送到 github)!

.gitmodules的例子:

[submodule "src/main/java/runtime"]
    path = src/main/java/runtime
    url = https://github.com/USER/REPO.git

我该怎么办?这对我来说是个严重的问题。

Git 将子模块视为关于推送到远程的单独存储库。这里正确的过程是推送每个子模块,然后推送包含子模块的子模块,最后推送您的根项目。所以你会想做这样的事情:

cd app/submodule1/submodule2/
git commit -m                  # commit files in submodule2
git push                       # push to repository

...                            # do the same for all other submodules in submodule1

cd app/submodule1/
git commit -m                  # commit files in submodule1
git push                       # push to repository

最后:

cd app/                        # change to directory of main project
git commit -m                  # commit files in main project
git push                       # after this everything will be up to date