繁体   English   中英

如何更改git子模块的HEAD

[英]How to change HEAD of git submodule

该项目有一个子模块,并指向该子模块的一个特定SHA(ex 62726c )。

所以每次运行git submodule update --init在子模块目录中只显示该SHA( 62726c )的更改。

最近我f81611模块进行了更改并推送了更改SHA( f81611 ),但如上所述,子模块的HEAD仍然指向旧的SHA 62726c

在执行git submodule update --init ,您将子模块签出到项目注册的修订版本(尚未更新),这就是您总是看到它被还原的原因。

要更改超级项目的子模块的修订版,请查看所需SHA1的子模块:

git checkout f81611

从主项目中,您将看到子模块被列为被修改( git status )。 您需要提交此修改,就像子模块是普通文件一样:

git add <path-to-submodule>
git commit -m "Update submodule XX so that it does YY"

另一个选项是让您的子模块遵循特定分支:
请参阅“ Git子模块:指定分支/标记

然后git submodule update --init --recursive --remote足以检查所有指定要跟随的分支的所有repos的该分支的最新信息。

如果推送的更改SHA( f81611 )推f81611 repo的master上,那么git submodule update --init --remote将更新git submodule update --init --remote库中使用的子模块存储库的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM