首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将子模块更新为最新提交

将子模块更新为最新提交
EN

Stack Overflow用户
提问于 2011-11-19 10:03:22
回答 6查看 256.5K关注 0票数 349

我有一个项目A,这是一个库,它在项目B中使用。

项目A和B在github上都有一个单独的存储库,但在B中,我们有一个子模块A。

我在存储库A中编辑了一些类,我在远程存储库上进行了推送,所以库(存储库A)被更新了。

这些更新不会反映子模块引用先前提交的“引用”(子模块)。我应该怎么做才能更新git上的子模块?

EN

回答 6

Stack Overflow用户

发布于 2017-02-11 19:36:47

从git 1.8开始,您可以

git submodule update --remote --merge

这会将子模块更新为最新的远程提交。然后,您需要添加并提交更改,以便更新父存储库中的gitlink:

首先,git添加它

git add project/submodule_proj_name

然后git提交它。

git commit -m 'gitlink to submodule_proj_name was updated'

git推着它

git push

然后推送更改,因为如果没有此选项,指向该子模块的SHA-1标识将不会更新,因此更改对其他任何人都不可见。

票数 146
EN

Stack Overflow用户

发布于 2011-11-19 10:19:33

如果您更新子模块并提交它,则需要转到包含或更高级别的存储库,并在那里添加更改。

git status

将显示类似以下内容:

modified:
   some/path/to/your/submodule

子模块不同步的事实也可以用

git submodule

输出将显示:

+afafaffa232452362634243523 some/path/to/your/submodule

加号表示您的子模块指向顶部存储库期望指向的位置前面。

只需添加以下更改:

git add some/path/to/your/submodule

并提交它:

git commit -m "referenced newer version of my submodule"

当您推送更改时,请确保首先在子模块中推送更改,然后在外部代码库中推送引用更改。这样,更新的用户将始终能够成功运行

git submodule update

更多关于子模块的信息可以在这里找到http://progit.org/book/ch6-6.html

票数 45
EN

Stack Overflow用户

发布于 2014-10-20 14:31:23

单行版本

git submodule foreach "(git checkout master; git pull; cd ..; git add '$path'; git commit -m 'Submodule Sync')"
票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8191299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档