问题标签 [git-submodules]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
11582 浏览

git - 无法`git submodule foreach git pull`

这个问题是基于这个线程

我的 .gitmodules 在我家

我家的文件夹结构:

我跑

我跑

我明白了

我修复错误的第一个假设是更改path = binpath = /Users/Masi/bin. 但是,这并不能解决问题。

如何从我的 Git 中的子模块外部存储库上传内容?

0 投票
1 回答
2136 浏览

git - git segfaults on merge - 子模块冲突

我正在尝试将两个分支上的代码与“git merge”命令结合起来,但 git 在此过程中崩溃了。我需要找到一种替代方法来合并这些分支。

为了将合并输出增加到调试级别,我运行了:

我目前在目标分支。git-status 显示一切干净清晰。当我合并分支时,这就是我所看到的(我已将签入注释替换为 %%%%%% 并将文件名替换为 #######,因为它们可能对业务敏感)。

事实证明,此时 git-merge 已经崩溃了。我怎么知道这个?- 在 Cygwin 下运行 git 时:

  • 在 Linux 下使用 'ulimit -c unlimited' 运行 git 时:
  • 在这两种情况下, .git/index.lock 仍然存在,并且必须在任何 git 命令再次起作用之前手动删除:

    $ git status fatal: 无法创建 '.git/index.lock': 文件存在

我通过将提交 ID 与 gitk 树中的提交 ID 进行比较,手动完成了上述合并。我似乎很清楚 git 正在寻找共同的祖先并将合并分解成碎片,递归地处理每个祖先。但我认为导致问题的是“git-link”到名为“build”的子模块在提交 e0a5fa1 和 ce62bf1 之间发生了变化:

  • 在 e0a5fa1 中,子模块构建是 8dc84b6
  • 在 ce62bf1 中,子模块构建是 b3efae4

所以很明显有冲突。但这是“部分”合并或任何所谓的冲突期间的冲突,而不是最终的冲突。而 git 似乎根本不能很好地处理这个问题。

好的,所以可能有一个错误 - 我将如何提交错误报告?

但我在这里真正关心的是我无法合并这两个分支。有谁知道不使用“合并”命令将这些分支组合在一起的另一种方法?我可以让'git-merge'在整个合并过程中以某种方式完全忽略这个子模块吗?

Linux git 版本 1.6.0.4

Cygwin git 版本 1.6.1.2

0 投票
36 回答
1153568 浏览

git - 如何删除子模块?

如何删除 Git 子模块?

顺便说一句,我有理由不能简单地做 git submodule rm whatever吗?

0 投票
1 回答
969 浏览

git - 将 git 项目拆分为多个子项目的另一个用例

我已将我的项目分成几个子项目但都有一个共同的部分(带有 cmake 脚本的目录)。此外,一些子项目需要包含其他子项目(库)。

我更喜欢使用 git 子模块,但据我所知,它们有一个限制,即子模块需要位于 repo 的单独目录中(是吗?)因为我不想复制任何东西,所以有点束缚我的手超级项目或任何子项目中的源或 cmake 脚本。

你建议如何解决?

0 投票
6 回答
15012 浏览

git - Git 嵌套子模块和依赖项

假设我有四个项目,名为CoreABSuper。依赖树是这样的:

我希望每个项目都是独立的,也就是说,我希望能够自行检出和编译每个项目(当然每个项目都有其依赖项)。

我曾考虑将每个项目映射到存储库,然后使用子模块引用依赖项,但我发现该方法存在以下问题:

  1. 在查看Super及其所有依赖项时,我最终会得到三个Core副本。
  2. 由于子模块是完全独立的,这三个副本中的每一个都可能指向不同的Core版本,这将是一团糟。

所以......我错过了什么吗?我是否误解了 git 子模块或滥用了它们?这个问题还有其他解决方案吗(除了求助于二进制依赖)?

0 投票
2 回答
1028 浏览

git - 如何在 Git 中跟踪子模块的配置文件?

在 Git 中,如何组织工作以跟踪库的本地配置文件,这是一个 git 子模块?

详细说明:

该库具有跟踪的普通文件,以及位于其文件夹中但未跟踪的默认配置文件,以避免重置或覆盖它们(它们在 .gitignore 中列出)。所有文件都在 lib 的文件夹或子文件夹中。

我也开始在 Git 中跟踪一个使用这个库的项目。现在有一个难题:

  • 如果我将此项目中的 lib 设为子模块,我将无法跟踪配置文件(Git 将忽略它们,因为它们位于子模块文件夹中)。

  • 据我了解,将所有内容作为一个大项目来跟踪是一个坏主意。

  • 如果我确实跟踪库中的配置文件,如何避免将它们重置为默认值?我是否在工作项目中创建一个分支并每次都从 master 中提取?那么,如果我在其中编辑库和配置文件怎么办?这一定会导致合并冲突,不是吗?

我想这并不新鲜,但我找不到任何建议。我会很感激从你们的经验中学习。

0 投票
1 回答
4521 浏览

git - 使用 git 子模块与在另一个带有 gitignore 的 repo 中拥有 repo 相比有什么优势?

我们一直在研究 git 子模块,我们想知道使用子模块的存储库与在另一个存储库中使用 .gitignore 文件的存储库相比有什么优势(如果有的话)。

没有子模块的示例:

0 投票
2 回答
57094 浏览

git - Git submodule inside of a submodule (nested submodules)

Is it possible for a git submodule to be made of several other git submodules, and the super git repo to fetch the contents for each submodule?

I have tried to do this using the obvious/naive approach of creating a git repo holding several submodules.

Then adding this git repo to another git repo as a submodule.

Then attempting to pull from the root directory of the super git repo by git submodule init and then git submodule update. But this fails to fetch the sub-submodules.

0 投票
2 回答
1378 浏览

git - 如何“冻结”git子模块

我正在使用一些我自己不托管的存储库,我想如果我在它们不可用时部署我的应用程序怎么办?这根本不可能发生。

有没有办法以某种方式“冻结”子模块,当我从我的存储库中提取子模块时,子模块已经初始化并更新了?

任何帮助表示赞赏。

0 投票
1 回答
3672 浏览

git - 需要在 git-archive 中处理 git-submodules

我需要将 git 子模块打包到我用git-archive.

我看到 1.6.5git-archive不支持 git 子模块。

我在网上看到了几个处理这种情况的脚本,但我不确定选择哪一个。

最好/最正式的方法是什么?