Git SourceTree - 未提交的子模块

ada*_*amS 9 git bitbucket

我在我的本地机器(Xcode iOS项目)上克隆了一个包含3个子模块的存储库.

其中一个子模块是私有的,我无法访问,因此我将其从.git/config文件中注释掉,以便我可以做一些工作.

现在我来提交我的更改并提供以下对话框 -

未提交的子模块对话框

我的问题是 - 如果我单击跳过并将我的更改推送到远程存储库,会发生什么.是否会影响其他开发人员(有权访问私有子模块)的人员.我不愿意推送,以防它从远程仓库中删除子模块.

希望这是有道理的,并提前感谢任何意见或答案.

干杯,亚当

[更新]本文似乎建议点击跳过将保留未提交的任何更改,并且不会被推送到远程. http://blog.sourcetreeapp.com/2012/02/01/using-submodules-and-subrepositories/

Kun*_*ani 3

子模块就像存储库中的代码引用。将它们视为指向另一个存储库的指针。

重要的是要了解,当您签出子模块时,磁盘中存在子模块存储库的本地副本,并且如果子模块中有任何有意/无意的更改,系统会要求您提供上述提示。

回答你的问题:如果你按skip,则只会提交存储库中的更改,并且远程子模块将保持不变。如果您依赖子模块中的这些更改,这可能会使您的代码不稳定。

如果你按commit,那么您在子模块中的更改也将被提交。

通常,最好的做法是单独对子模块进行任何更改并将这些更改拉到您的存储库中。如果子模块被积极使用,那么我建议使用依赖管理器或 git 子树来引用它。

在此输入图像描述

  • 我已经更新了我的答案,你无法让它消失。让它消失的唯一方法是确保您不直接从存储库修改子模块。 (2认同)