问题标签 [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.
git - 如何使现有 Git 存储库的一部分成为子模块
我有这个 Git 存储库,其中包含两个文件夹:binary-search
和poker
.
例如:https ://github.com/soulnafein/code-katas
我想将这些文件夹变成子模块并保留它们的更改历史记录。
我怎样才能做到这一点?
git - Git 子模块工作流程
在我的项目中,我需要使用存储在多个 Git 存储库中的第三方代码。我的项目也存储在(单独的)Git 存储库中。有几个人和我一起在主要项目上工作,我是维护者。
在早期的项目中,我曾经手动将依赖项复制到 Git 工作树,添加一个小文件来指定我使用的版本。
现在这相当不舒服,因为我需要每天更新一个依赖项,并且经常自己为其贡献代码,大部分时间伴随着对主项目的更改。
我决定尝试使用 Git 子模块来进行管理。我越尝试它们,我就越沮丧。甚至似乎手动复制可能更好。
以下是我的一些担忧:
- 我们不再能够通过单个命令(
git checkout
现在需要git submodule update --init
)获得一致的存储库状态。 - 我们无法正确使用某些 Git 工具(
git archive
最值得注意的是)。 - 我们无法看到主项目中子模块的状态更改/差异。
- 正如我刚刚以一种艰难的方式发现的那样,
git submodule
它不适用于--git-dir
and--work-tree
选项,并且需要将当前目录物理更改为“工作树的顶层”。
似乎为了简化我们的子模块工作流程(即一个操作 == 一个命令),我们必须围绕 Git 编写一个相当厚的包装器。这真是难过;这真是伤心。
请注意,离开 Git 或将子项目开发完全合并到主项目中不是一种选择。
也许我git submodules
以错误的方式使用?有没有关于工作流程的好教程?
即使您不知道正确的答案,也请说出来,但请分享我的担忧。:-)
git - git子模块错误
收到此错误:
git pull
从主仓库执行时。我没有在我的项目中的任何地方定义任何子模块,但我仍然有另一个 repo 里面vendor/plugins/simple_stuff
。有任何想法吗?
git - 如何取消子模块 Git 子模块?
取消子模块 Git 子模块,将所有代码带回核心存储库的最佳实践是什么?
git - GIT子模块致命:无法描述
我正在尝试向我的项目添加一个 git 子模块,但 git 一直告诉我 $ git submodule fatal: cannot describe 'dd650e8bb4762a8a7f69a6412b4765c9bb108778'
什么是“致命:无法描述”,我该如何避免这种情况?
git - 添加 Git 子模块时如何指定分支/标签?
如何git submodule add -b
工作?
添加具有特定分支的子模块后,新的克隆存储库(之后git submodule update --init
)将位于特定提交处,而不是分支本身(git status
子模块上显示“当前不在任何分支上”)。
我找不到关于子模块分支或任何特定提交的任何信息.gitmodules
,.git/config
那么 Git 是如何计算出来的呢?
另外,是否可以指定标签而不是分支?
我正在使用版本 1.6.5.2。
git - 如何在另一个存储库中使用 git 存储库?
我有一个 Git 媒体存储库,其中保存了我将在各种项目中使用的所有 JavaScript 和 CSS 主文件和脚本。
如果我在自己的 Git 存储库中创建了一个新项目,如何在新项目中使用媒体存储库中的 JavaScript 文件,以便在进行更改时不必更新脚本的两个副本?
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。
git - 指定为相对路径时无法添加 git 子模块
我正在尝试将一个子模块添加到我的 git 存储库中,但我得到了这个错误作为回报:
关于这可能是什么的任何想法?我试着用谷歌搜索它,但只有一个模糊的链接出现。
我正在这样做:
我希望这会创建一个子lib/Lib1
模块子模块命令)。
git - Git子模块更新
我不清楚以下是什么意思(来自Git 子模块更新文档):
...将使子模块 HEAD 分离,除非
--rebase
或--merge
指定...
--rebase
/如何--merge
改变事物?
我的主要用例是拥有一堆中央存储库,我将通过子模块将它们嵌入到其他存储库中。我希望能够直接在它们的原始位置或从它们的嵌入存储库(通过子模块使用它们的那些)中改进这些中央存储库。
- 在这些子模块中,我可以像在常规存储库中一样创建分支/修改并使用推/拉,还是有什么需要注意的地方?
- 我将如何将子模块引用的提交从说(标记)1.0 推进到 1.1(即使原始存储库的负责人已经在 2.0),或者选择使用哪个分支的提交?