我有一个依赖子模块的仓库(父项目)。我需要将子模块更新为最新提交,但无法正常工作。
我这样创建了子模块:
git submodule add https://github.com/library.git
(不是真实姓名)
我试图用此更新它:
git submodule update --remote --merge
它不起作用。我在父项目中仍然有旧代码。当我查看子模块回购中的代码时,新的代码就在那里。
我更新了子模块的仓库,提交并推送。这样可行。我更新了父项目中的子模块,但无法正常工作。我对父项目进行了更改,提交和推送。子模块仍未更新。
我按照一篇帖子中的建议尝试了git submodule --init
。这是一个可怕的命令。首先,它将子模块中的所有代码复制到父项目中,这是一个浪费的潜在错误源,现在在两个位置使用相同的代码加上完全相同的错误(旧)代码。
如果我发出以下命令:git submodule update --remote --merge
,则没有响应。
任何人都知道如何更新父项目以指向最新的子模块吗?
答案 0 :(得分:0)
好吧,我发现是否删除了子模块,然后再次添加它,就得到了最新的推送。这并不理想,但至少可以奏效,我可以继续前进。
git submodule deinit -f path
git rm -f path
我不确定这些命令的确切作用,但我遵循了一项建议,它确实有效。我仍然对这样做有更好的兴趣。
答案 1 :(得分:0)
git submodule update --remote
应该已经使用默认的master
来更新了子模块的代码。
但是如果默认情况下不起作用:
git submodule add -b master <URL to Git repo>
)尝试并重新创建模块