相关疑难解决方法(0)

如何"git克隆"包括子模块?

我试图将子模块放入回购.问题是当我克隆父repo时,子模块文件夹是完全空的.

有没有办法让它git clone parent_repo实际上把数据放在子模块文件夹中?

例如,http://github.com/cwolves/sequelize/tree/master/lib/,nodejs-mysql-native指向在外部git的子模块,但是当我结账的sequelize项目,该文件夹为空.

git git-submodules

1864
推荐指数
17
解决办法
78万
查看次数

回顾性地添加--recursive到git repo

如果你git clone--recursive,你也可以得到所有的git子模块.

如果我忘记在克隆时添加这个神奇的旗帜,可能会发生,我现在如何去获取任何子模块?

此外,如何将递归标志设置为将来克隆的默认标志?

git version-control git-clone git-submodules

61
推荐指数
2
解决办法
1万
查看次数

添加包含另一个子模块的git子模块?

我正在一个git存储库(A)中创建一个项目,其中包括另一个git存储库(B),后者又包含第三个git存储库(C).在A中,我通过以下方式添加了B:

git submodule add https://github.com/blt04/sfDoctrine2Plugin.git plugins/sfDoctrine2Plugin
Run Code Online (Sandbox Code Playgroud)

单击此处,您可以看到B引用C的位置:https://github.com/doctrine/doctrine2

在我的git子模块添加后,我的plugins/sfDoctrine2Plugin/lib/vendor/doctrine文件夹(应该包含C)是空的.我尝试git submodule update --recursive按照这个StackOverflow答案做一个,但它仍然没有将文件导入到该路径.我不知道该怎么做.

git github git-submodules

26
推荐指数
1
解决办法
1万
查看次数

在子模块中添加git子模块(嵌套子模块)

如本课题所述

git子模块是否有可能由其他几个git子模块组成,而超级git repo可以获取每个子模块的内容?

作者假设了一个像这样的git子模块层次结构:

  • repo1
    • 子模块xyz1
    • 子模块xyz2
  • repo2
    • 子模块repo1

这个问题是关于在子模块中嵌套子模块的可能性:

  • repo1
    • 子模块
      • 子模块ab
      • 子模块

.gitmodules的真实示例应如下所示:

[submodule "Source/V8"]
    path = Source/V8
    url = https://chromium.googlesource.com/v8/v8.git
[submodule "Source/V8/build/gyp"]
    path = Source/V8/build/gyp
    url =  https://chromium.googlesource.com/external/gyp
[submodule "Source/V8/third_party/cygwin"]
    path = Source/V8/third_party/cygwin
    url = https://chromium.googlesource.com/chromium/deps/cygwin
[submodule "Source/V8/third_party/python_26"]
    path = Source/V8/third_party/python_26
    url = https://chromium.googlesource.com/chromium/deps/python_26
[submodule "Source/V8/third_party/icu"]
    path = Source/V8/third_party/icu
    url = https://chromium.googlesource.com/chromium/deps/icu52
[submodule "Source/V8/testing/gtest"]
    path = Source/V8/testing/gtest
    url = https://chromium.googlesource.com/chromium/testing/gtest
[submodule "Source/V8/testing/gmock"]
    path = Source/V8/testing/gmock
    url = https://chromium.googlesource.com/chromium/testing/gtest
Run Code Online (Sandbox Code Playgroud)

请注意,子模块的路径是嵌套的:

  • 来源/ V8
    • 来源/ V8 /编译/ GYP
    • 来源/ V8/THIRD_PARTY/Cygwin的 …

git git-submodules

8
推荐指数
1
解决办法
3644
查看次数

哪个版本控制系统或平台是跟踪和分发个人Emacs配置的最佳版本?

我目前使用subversion来跟踪我对Emacs的配置更改,并将我的'.emacs.d'目录同步到不同的平台.

许多软件包如Ido,Muse或Org-mode都是Emacs发行版的一部分,它们附带Debian或Carbon Emacs(osx).但是我也使用的其他软件包不属于这些发行版,因此我必须手动将它们添加到我的个人subversion存储库中.

优点是我现在可以在任何我想要工作的地方查看我的整个'.emacs.d'配置.缺点是我必须跟踪这些包的更新,每次有新的更新时我都必须手动更新我自己的存储库.

是否有更好的方法将我自己的配置和包与"社区"的配置和包集成?我意识到github.com被许多人用于这个原因.

我应该更好地使用git而不是subversion来同步和共享我的Emacs配置与社区的配置吗?这是否意味着我应该更好地切换到github.com而不是使用我自己的subversion服务器来更接近其他有关交换和分发的Emacs用户?

svn git emacs github

5
推荐指数
1
解决办法
331
查看次数

如何使用子模块和n层git存储库策略

我们正在迁移到git.我们有大量的模块构成我们的产品,其中一些模块在产品之间共享.该产品由"瘦"超级存储库(ssh://server/product.git)表示,该存储库仅包含子模块:

[submodule "module1"]
path=module1
url=ssh://server/product/module1.git
[submodule "module2"]
path=module2
url=ssh://server/product/module2.git
...
Run Code Online (Sandbox Code Playgroud)

我可以克隆超级存储库并使用子模块并提交它们,然后将子模块提交到超级存储库.

当我想引入另一层时,问题出现了.有两种基本方案(这可以组合起来制作更复杂的设置,但任何东西都应该是这些的组合):

  1. 作为开发人员,我克隆了一个中央存储库并开始工作.然后我想将我的代码提交到我们的持续集成服务器,然后再将我的更改合并到中央存储库.我让CI服务器克隆我的repo.这不起作用,CI服务器将克隆我的超级仓库,然后它将从中央存储库位置克隆子模块(因为它是在.gitmodules中所说的).

  2. 作为一个团队,我们希望在sprint结束之前将我们的代码合并到中央存储库之前,我们需要一个集成存储库.出于同样的原因,这失败了.

我尝试为子模块指定相对URL,但这也不起作用,因为当我们将第二层克隆到第三层时,相对URL相对于第二层存储库位置解析,但第二层子模块位置在第二层超级存储库.

我能同时拥有它吗?Git子模块和n层存储库结构?

git relative-url git-submodules

5
推荐指数
1
解决办法
490
查看次数