标签: git-submodules

为什么git子模块更新失败?

我有以下 .gitmodules文件:

[submodule "web/blog"]
    path = web/blog
    url = git://amygdala.servebeer.com:lucky_blog.git

[submodule "web/old"]
    path = web/old
    url = git://amygdala.servebeer.com:old_lucky.git
Run Code Online (Sandbox Code Playgroud)

当我克隆repo并运行git submodule init && git submodule update(或git submodule init --update)时,我收到以下错误:

Cloning into web/blog...
fatal: Unable to look up  (port 9418) (Name or service not known)
Clone of 'git://amygdala.servebeer.com:lucky_blog.git' into submodule path 'web/blog' failed
Run Code Online (Sandbox Code Playgroud)

我观察到引起一些担忧的三件事:

  1. 第二个.gitmodules条目(web/old)克隆得很好,没有任何问题.
  2. 错误消息中似乎有一个额外的空间,我认为git通常会列出它无法查找的主机名(在上面列出的错误中的端口号列表之前).
  3. git clone git://amygdala.servebeer.com:lucky_blog.git 工作得很好.

这个回购有什么问题?这是git的错误还是我在设置回购时搞砸了什么?

编辑这里是我的git配置供参考:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = …
Run Code Online (Sandbox Code Playgroud)

git git-submodules

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

浅深度git子模块更新或克隆

可能重复:
Git浅子模块

启动Git 1.6.5+ git clone有一个--recursive选项,也可以递归地克隆子模块.

我们项目中的子模块非常大(历史很多),有时需要很长时间来克隆,可以通过--depth 1选项保存.

有没有办法以--depth 1递归方式浅层克隆()这些子模块?

git git-submodules

8
推荐指数
0
解决办法
263
查看次数

将上游设置为子模块(或如何将GitHub fork作为子模块包含)

我对这个Git事情很陌生,需要一些帮助.

我最近在GitHub上创建了一个新的repo并将其克隆到我的桌面上.我们称之为myProject.我的GitHub帐户中也有一个fork,我将其作为子模块包含在myProject中.让我们把这种myForkOfOtherProject,这是一个叉otherProject.

那么,这是目前的情况:

回购的当前状态图

据GitHub说:

当一个repo被克隆时,它有一个默认的远程名为origin,指向你在GitHub上的fork,而不是它分叉的原始repo.要跟踪原始仓库,您需要添加另一个名为upstream的远程.

所以,我的问题是,如何将上游设置为子模块?或者我不明白什么?

先感谢您.

git github git-submodules

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

将php composer包添加到我的git存储库中

我已经安装了composer并通过'composer install'添加了一些包.它将它们安装在"my_project\vendor"路径下,但是一些软件包是使用git克隆的,所以当我提交"my_project"时,这些克隆的软件包被忽略了.

问题是,当其他开发人员克隆"my_project"时,他们会丢失被忽略的包.有没有办法自动将包添加到"my_project",以便其他开发人员从我这里获取它们?

我认为这应该使用子模块完成,但我不知道如何自动将作曲家的每个新包作为子模块添加到我的项目中.

php git-submodules composer-php

8
推荐指数
2
解决办法
5681
查看次数

删除子模块后出错:以下路径被.gitignore文件忽略:

删除子模块后,我收到此错误.有问题的路径不在我的.gitignore文件中,我的.git/info/exclude文件中也没有任何相关内容.我没有.gitignore_global文件.为什么git试图忽略这条路径,我该如何解决这个问题呢?

The following path is ignored by one of your .gitignore files:
MyTest/MyTest/lib/submodules/ScreenRecorder
Use -f if you really want to add it.
Run Code Online (Sandbox Code Playgroud)

这是我正在尝试执行的命令:

git submodule add https://github.com/kishikawakatsumi/ScreenRecorder.git MyTest/MyTest/lib/submodules/ScreenRecorder
Run Code Online (Sandbox Code Playgroud)

这是从我的git repos根目录执行的.

git git-submodules

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

git子模块的不同推/拉网址

我在一个大型项目中使用git superproject模式,该项目由没有存储库帐户的Teamcity构建代理部署,但是存储库设置为允许匿名克隆.出于这个原因,我已经使用他们的http://url而不是他们的git url 设置了子模块.这个问题是存储库拒绝http推送:

Total 0 (delta 0), reused 0 (delta 0)
error: RPC failed; result=22, HTTP code = 401
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

所以每次我在切换分支时更新子模块,我都要做一个git remote add-url --push添加git://网址.

有没有办法在超级项目中设置子模块,以便他们已经使用http://url进行提取和git://推送网址?

git git-submodules gitlab

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

git存储库中的依赖管理(使用子模块)

我有一个相当大的项目,有很多依赖项.项目存储在git存储库中,依赖项存储在作为子模块链接的专用git存储库中.依赖项可以具有进一步的依赖性(同样,使用git子模块).

这很好用.但是,如果两个依赖项同时需要第三个依赖项,则会遇到更新问题.

依赖关系图如下所示:

[Main Repo]
  |
  |-- [ModuleA]
  |       |
  |       \-- [ModuleC]
  |
  \-- [ModuleB]
          |
          \-- [ModuleC]
Run Code Online (Sandbox Code Playgroud)

现在我更新ModuleA和ModuleB中的子模块指针.这样两个模块都是自包含的.但是,这是很多工作.

在较大的项目中,这个问题通常如何解决?我正在寻找解决此类问题的最佳实践.

谢谢!

git dependencies project-management git-submodules

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

如何做git子模块以及为什么要使用git子模块

我找到了一个github项目,它使用git子模块.

git子模块的用途是什么?

如何创建git子模块?

它们与子树的区别如何?

GitSubModule

谢谢

git github git-submodules git-subtree

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

从存储库中删除所有Git缓存子模块

我们的团队不再使用子模块很长一段时间了,我们想通过删除所有缓存的子模块来释放一些存储库空间.

我们只需要删除以下内容吗?

rm -rf .git/modules
Run Code Online (Sandbox Code Playgroud)

或者有更推荐的方法吗?此外,如果可能,我们希望将删除推送到服务器.

注意:使用git 2.5.4和当前状态将所有内容合并到一个分支中.

注意:我们不记得旧提交中使用的子模块的个别名称.

git git-submodules

8
推荐指数
2
解决办法
9879
查看次数

GitLab CI如何在maven多模块项目中触发子模块的管道

我有一个多模块Maven项目:

root
    SubmoduleA
        src
        pom.xml      
    SubmoduleB
        src
        pom.xml
    pom.xml
    .gitlab-ci.yml
Run Code Online (Sandbox Code Playgroud)

有人在检查只影响SubmoduleA的代码时,是否有任何方法可以仅在SubmoduleA上触发CI管道?例如,某人在SubmoduleA中进行了更改.一旦他们提交并推送,我想在SubmoduleA上自动运行build-> test-> deploy,因为SubmoduleB没有变化.

有没有办法为回购中的特定子模块或子项目指定触发器和作业?

runner maven git-submodules multi-module gitlab-ci

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