Git SourceTree - 未提交的子模块

11
我在本地机器上克隆了一个包含3个子模块的存储库(Xcode iOS项目)。其中一个子模块是私有的,我无法访问,因此我将其从.git / config文件中注释掉以便进行工作。
现在我要提交我的更改,并出现了下面的对话框 -
我的问题是-如果我点击跳过并将更改推送到远程存储库,会发生什么。它会影响其他开发人员(可以访问私有子模块)拉取我的提交吗?我不想推送,以防它从远程存储库中删除子模块。
希望这有意义,并提前感谢任何评论或答案。
更新:本文似乎表明,单击跳过将使任何更改未提交且不会被推送到远程。 http://blog.sourcetreeapp.com/2012/02/01/using-submodules-and-subrepositories/
1个回答

3
子模块就像存储库内的代码引用。可以将其视为指向另一个存储库的指针。
重要的是要理解,当您检出子模块时,本地磁盘上会有一个子模块存储库的副本,如果子模块中有任何有意或无意的更改,系统会提示您进行选择。
回答您的问题:如果您选择“跳过”,则只有您的存储库中的更改会被提交,子模块远程存储库将保持不变。如果您依赖于子模块中的这些更改,则可能会使您的代码不稳定。
如果您选择“提交”,则子模块中的更改也将被提交。
通常最好单独对子模块进行更改,并在拉取这些更改到您的存储库之前进行提交。如果子模块正在积极使用,则建议使用依赖管理器或git subtrees来引用它。

enter image description here


1
如何让询问是否跳过的模态框永久消失? - Petrus Theron
2
我已经更新了我的回答,你不能让它消失。唯一的方法是确保你不直接从你的仓库修改子模块。 - Kunal Balani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接