Git SourceTree - 未提交的子模块

标签 git bitbucket

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

其中一个子模块是私有(private)的,我无法访问,所以我在 .git/config 文件中将其注释掉,以便我可以做一些工作。

现在我开始提交我的更改,并看到以下对话框 -

Uncommitted submodules dialog

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

希望这是有道理的,并提前感谢您的任何评论或回答。

干杯, 亚当

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

最佳答案

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

重要的是要了解,当您 check out 子模块时,您的磁盘中存在子模块存储库的本地副本,如果子模块中有任何有意/无意的更改,您将被要求提供上述提示。

回答您的问题:如果您按 skip,那么只会提交您的 repo 中的更改,并且子模块 remote 将保持不变。如果您依赖子模块中的这些更改,这可能会使您的代码不稳定。

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

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

enter image description here

关于Git SourceTree - 未提交的子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24910860/

相关文章:

git - 如何修改 cygwin 的 PS1 以完成 git bash?

angularjs - Git 存储库到 package.json 中的依赖项

Git:用另一个同名文件替换 git 跟踪的文件

git - Mercurial 是否有等同于 git clean 的工具?

mercurial - bzr/launchpad 与 hg/Bitbucket

将代码推送到 bitbucket 时 git-lfs i/o 超时

git - 我真的把我的存储库弄乱了吗?

bitbucket - 使用 Xcode 10 在 bitbucket 上创建 Remote 时发生错误

jenkins - Chef : Jenkins supermarket cookbook automated job deployment

bitbucket - 你如何轻松地将大量存储库导入bitbucket?