问题标签 [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 投票
2 回答
15182 浏览

git - 如何使现有 Git 存储库的一部分成为子模块

我有这个 Git 存储库,其中包含两个文件夹:binary-searchpoker.

例如:https ://github.com/soulnafein/code-katas

我想将这些文件夹变成子模块并保留它们的更改历史记录。

我怎样才能做到这一点?

0 投票
2 回答
6688 浏览

git - Git 子模块工作流程

在我的项目中,我需要使用存储在多个 Git 存储库中的第三方代码。我的项目也存储在(单独的)Git 存储库中。有几个人和我一起在主要项目上工作,我是维护者。

在早期的项目中,我曾经手动将依赖项复制到 Git 工作树,添加一个小文件来指定我使用的版本。

现在这相当不舒服,因为我需要每天更新一个依赖项,并且经常自己为其贡献代码,大部分时间伴随着对主项目的更改。

我决定尝试使用 Git 子模块来进行管理。我越尝试它们,我就越沮丧。甚至似乎手动复制可能更好。

以下是我的一些担忧:

  • 我们不再能够通过单个命令(git checkout现在需要git submodule update --init)获得一致的存储库状态。
  • 我们无法正确使用某些 Git 工具(git archive最值得注意的是)。
  • 我们无法看到主项目中子模块的状态更改/差异。
  • 正如我刚刚以一种艰难的方式发现的那样,git submodule它不适用于--git-dirand--work-tree选项,并且需要将当前目录物理更改为“工作树的顶层”。

似乎为了简化我们的子模块工作流程(即一个操作 == 一个命令),我们必须围绕 Git 编写一个相当厚的包装器。这真是难过;这真是伤心。

请注意,离开 Git 或将子项目开发完全合并到主项目中不是一种选择。

也许我git submodules以错误的方式使用?有没有关于工作流程的好教程?

即使您不知道正确的答案,也请说出来,但请分享我的担忧。:-)

0 投票
1 回答
837 浏览

git - git子模块错误

收到此错误:

git pull从主仓库执行时。我没有在我的项目中的任何地方定义任何子模块,但我仍然有另一个 repo 里面vendor/plugins/simple_stuff。有任何想法吗?

0 投票
13 回答
113482 浏览

git - 如何取消子模块 Git 子模块?

取消子模块 Git 子模块,将所有代码带回核心存储库的最佳实践是什么?

0 投票
2 回答
1679 浏览

git - GIT子模块致命:无法描述

我正在尝试向我的项目添加一个 git 子模块,但 git 一直告诉我 $ git submodule fatal: cannot describe 'dd650e8bb4762a8a7f69a6412b4765c9bb108778'

什么是“致命:无法描述”,我该如何避免这种情况?

0 投票
13 回答
733734 浏览

git - 添加 Git 子模块时如何指定分支/标签?

如何git submodule add -b工作?

添加具有特定分支的子模块后,新的克隆存储库(之后git submodule update --init)将位于特定提交处,而不是分支本身(git status子模块上显示“当前不在任何分支上”)。

我找不到关于子模块分支或任何特定提交的任何信息.gitmodules.git/config那么 Git 是如何计算出来的呢?

另外,是否可以指定标签而不是分支?

我正在使用版本 1.6.5.2。

0 投票
5 回答
132850 浏览

git - 如何在另一个存储库中使用 git 存储库?

我有一个 Git 媒体存储库,其中保存了我将在各种项目中使用的所有 JavaScript 和 CSS 主文件和脚本。

如果我在自己的 Git 存储库中创建了一个新项目,如何在新项目中使用媒体存储库中的 JavaScript 文件,以便在进行更改时不必更新脚本的两个副本?

0 投票
3 回答
18358 浏览

git - 为什么 git 子模块不会在 git checkout 上自动更新?

当使用 git checkout 切换分支时,我会假设大多数时候你会想要更新你的子模块。

  • 什么情况下不想在切换后更新子模块?
  • 如果这是由 git checkout 自动完成的,会发生什么?

更新示例:

  • 分支 A 在 3852f1 有子模块 S
  • 分支 B 在 fd72d7 有子模块 S

在分支 A 上, git checkout B 将生成分支 B 的工作副本,其中子模块 S 位于 3852f1(带有修改的 S)。git submodule update 将在 fd72d7 签出 S。

0 投票
3 回答
31868 浏览

git - 指定为相对路径时无法添加 git 子模块

我正在尝试将一个子模块添加到我的 git 存储库中,但我得到了这个错误作为回报:

关于这可能是什么的任何想法?我试着用谷歌搜索它,但只有一个模糊的链接出现。

我正在这样做:

我希望这会创建一个子lib/Lib1
模块子模块命令)。

0 投票
4 回答
304796 浏览

git - Git子模块更新

我不清楚以下是什么意思(来自Git 子模块更新文档):

...将使子模块 HEAD 分离,除非--rebase--merge指定...

--rebase/如何--merge改变事物?

我的主要用例是拥有一堆中央存储库,我将通过子模块将它们嵌入到其他存储库中。我希望能够直接在它们的原始位置或从它们的嵌入存储库(通过子模块使用它们的那些)中改进这些中央存储库。

  • 在这些子模块中,我可以像在常规存储库中一样创建分支/修改并使用推/拉,还是有什么需要注意的地方?
  • 我将如何将子模块引用的提交从说(标记)1.0 推进到 1.1(即使原始存储库的负责人已经在 2.0),或者选择使用哪个分支的提交?