无法`git的子模块的foreach混帐pull`(Unable to `git submodule

2019-06-26 10:04发布

这个问题是基于这个线程 。

我.gitmodules是我的家

[submodule "bin"]
           path = bin
           url = git://github.com/masi/bin.git

我的文件夹结构-在我的主页:

~
|-- [drwxr-xr-x] bin          // this is the folder which I make a submodule
                              // it is also a folder where I have a Git to push my submodule's files
    | -- fileA
    ` -- folderA
    ...

我跑

git submodule init    # I get no output from these commands
git submodule update          

我跑

git submodule foreach git pull

我得到

Entering 'bin'
fatal: Where do you want to fetch from today?
Stopping at 'bin'; script returned non-zero status.

我的第一个假设来修正错误是改变path = binpath = /Users/Masi/bin 。 然而,这并不能解决问题。

你怎么可以上传这是我的Git的子模块的外部存储库中的内容?

Answer 1:

这通常是当没有远程配置所造成的误差。
(从这个线程 )

据介绍,以一个补丁运行在初始化很久以前,不使用的.git / config文件来指定我的远程存储库是一个资源库“混帐拉”时,至少修复回归。

更好的消息可能会是这样的:

没有默认的远程配置为您的当前分支,
和默认的远程“原点”也不会被配置。

我觉得错过了所取得的信息方便用户在前面传球由于被当时的访问。


所以此消息指示在git的提到的远程回购/模块未在的.git /配置声明

从git的子模块

子模块不与遥控器,这意味着主要用于同一项目的分支相混淆;
子模块都是为了你想使你的源代码树的一部分,不同的项目,而这两个项目的历史还停留完全独立的,你不能从主项目中修改子模块的内容。

我相信你可能已经错过的步骤git submodule init

子模块初始化

初始化子模块, 即注册每个子模块的名称和网址在.gitmodules到的.git / config中找到
在使用的密钥.git/configsubmodule.$name.url
此命令不会改变的.git / config中现有的信息。
然后,您可以自定义子模块克隆网址.git/config为你的本地设置,并继续与git子模块更新; 你也可以只使用git submodule update --init没有明确的初始步骤,如果你不打算自定义任何子模块的位置。

如果您的远程回购(在git的/模块的声明)中的.git / config中充分参考的,你不应该有此错误信息了。

使用(普林)子模块,这些步骤之前:

git submodule init
git submodule update

仍然是必要的。



文章来源: Unable to `git submodule foreach git pull`