[英]Git submodule modified after a git pull, should I push?
我有两个裸仓库super
和a
,一个克隆为super
- clone_super
和一个克隆为a
- clone_a
。 我已经将repo a
添加为clone_super
的子模块。
如果我现在在做一些改变clone_a
,推动那些做一个git pull origin master
在~/clone_super/a
,这将在渲染modify status
的~/clone_super/a
,后显示git status
在~/clone_super
。
如果我执行git submodule update
, ~/clone_super/a
将恢复为先前的提交。 因此,是否打算在每次更新它们时都需要提交和推送子模块以获取它们存在的存储库?
简短的答案是肯定的,更新后必须提交并推送子模块。
想一想如果目录不是子模块,目录将如何工作,每次更改文件时,都必须提交并推送它。 子模块完全相同,只是super不会直接跟踪文件更改。 而是,子模块内的存储库跟踪文件更改,而超级存储库通过跟踪子模块中的提交来跟踪这些更改。
这样做的好处是它允许以不同的粒度进行跟踪。 你可以做几十个辅助模块修订不改变超级仓库,然后作出一个承诺的超级反映在辅助模块中的变化。 费用是两次提交的要求。
是的,它的目的,它可以让你保持在回购的版本历史a
使用回购的每个版本super
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.