如何解决为什么我的git repo子模块无法更新?
我有一个依赖子模块的仓库(父项目)。我需要将子模块更新为最新提交,但无法正常工作。
我这样创建了子模块:
git submodule add https://github.com/library.git
(不是真实姓名)
我试图用此更新它:
git submodule update --remote --merge
它不起作用。我在父项目中仍然有旧代码。当我查看子模块回购中的代码时,新的代码就在那里。
我更新了子模块的仓库,提交并推送。这样可行。我更新了父项目中的子模块,但无法正常工作。我对父项目进行了更改,提交和推送。子模块仍未更新。
我按照一篇帖子中的建议尝试了git submodule --init
。这是一个可怕的命令。首先,它将子模块中的所有代码复制到父项目中,这是一个浪费的潜在错误源,现在在两个位置使用相同的代码加上完全相同的错误(旧)代码。
如果我发出以下命令:git submodule update --remote --merge
,则没有响应。
任何人都知道如何更新父项目以指向最新的子模块吗?
解决方法
好吧,我发现是否删除了子模块,然后再次添加它,就得到了最新的推送。这并不理想,但至少可以奏效,我可以继续前进。
git submodule deinit -f path
git rm -f path
我不确定这些命令的确切作用,但我遵循了一项建议,它确实有效。我仍然对这样做有更好的兴趣。
, git submodule update --remote
应该已经使用默认的master
来更新了子模块的代码。
但是如果默认情况下不起作用:
- 确保您使用的是最新版的Git 2.28(如果没有,请升级并检查问题是否仍然存在)
- 这次specifying which branch you want to track(
git submodule add -b master <URL to Git repo>
)尝试并重新创建模块 - 如果没有任何效果,请尝试使用beginning of this answer处的脚本,该脚本将进入每个模块并提取。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。