[英]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.