git子模块是否有可能由其他几个git子模块组成,而超级git repo可以获取每个子模块的内容?
我尝试使用显而易见的/天真的方法来创建一个包含多个子模块的git repo.
然后将此git repo添加到另一个git repo作为子模块.
然后尝试从超级git仓库的根目录拉出git submodule init然后git submodule update.但这无法获取子子模块.
我有一个项目,用于在路径中包含子模块mysubmodule.我从源代码(1.8.3-rc2)安装了最新的Git并运行git submodule deinit mysubmodule.然后我删除了.gitmodules文件并提交了更改.我还.git从mysubmodule文件夹中删除了该目录.
我现在想mysubmodule直接将文件提交到我的仓库,但是git说没有变化.如果我输入git add mysubmodule它什么都不做.如果我输入git add mysubmodule/file.txt它说fatal: Path 'mysubmodule/file.txt' is in submodule 'mysubmodule'
我还发现,如果您查看一个新版本的repo,它会创建一个mysubmodule目录,尽管没有.gitmodules文件.跑步git submodule init会给你一个No submodule mapping found in .gitmodules for path 'mysubmodule'错误.
我该如何解决?
如果你git clone有--recursive,你也可以得到所有的git子模块.
如果我忘记在克隆时添加这个神奇的旗帜,可能会发生,我现在如何去获取任何子模块?
此外,如何将递归标志设置为将来克隆的默认标志?
要填充存储库的子模块,通常会调用:
git submodule init
git submodule update
Run Code Online (Sandbox Code Playgroud)
在这种用法中,git submodule init似乎只做一件事:填充.git/config已经存在的信息.gitmodules.
那是什么意思?
不能git submodule update简单地使用来自的信息.gitmodules?这样可以避免:
git submodule init); 和.gitmodules内容到.git/config).或者:
git submodule init我不知道(在这种情况下,请赐教!); 要不然git submodule init 可以在Git中弃用而没有任何伤害.以下哪一项是正确的?
我从github克隆了一个git repo,里面有子模块.--recursive克隆时我忘了使用该选项.现在有办法拉出子模块吗?
我想更新git clone上的子模块.
有没有办法用Jenkins管道Git命令做到这一点?
目前我正在这样做......
git branch: 'master',
credentialsId: 'bitbucket',
url: 'ssh://bitbucket.org/hello.git'
Run Code Online (Sandbox Code Playgroud)
但是,一旦克隆,它就不会更新子模块
我有一个Xcode项目,它本身就有Git Source Control.在Libraries文件夹中,我从GitHub克隆了另外八个Git项目.它们位于我自己的Git存储库中,我在提交中将所有这些库添加到我的git中.
而不是在我的存储库中拥有所有这些git库的代码,有没有办法让git在我的repo克隆时从他们的repo下载他们的代码?或者在项目中包含其他git repos是否正常?
试图在这个网站和其他人寻找答案: StackOverflow - 简单的方法拉最新的所有子模块
他们似乎都想谈谈你是否正在控制它们,而不是如果其他人添加了一个,我只想将额外的一个添加到我的项目中,而不需要保存或备份我的更改,如果我需要删除该文件夹.
我应该删除我已经删除的.gitmodules文件和/或子模块目录git clone --recursive吗?(StackOverflow - 如何git clone包含子模块?)
这些命令似乎也没有帮助:
git submodule update --init --recursive 好像什么也没做.git submodule update --recursive 没有.git fetch --recurse-submodules输出Fetching submodule ...几次.git pull --recurse-submodules输出相同的东西,然后Already up-to-date.在获取试用后说.奇怪,因为在任何一种情况下我的子模块都已下载.git clone --recursive ... 尚未尝试过. 我觉得会覆盖我在Stash或其他方面做出的任何改变.git submodule update --recursive --remote 检查出其中一个子模块的新提交SHA.git submodule update --recursive检查出其中一个子模块的新提交SHA.可能是较旧的原始提交级别.git submodule status 为每个提供适当的SHA,版本和名称信息,同时仍然缺少我想要的那个.git submodule foreach git pull origin mastergit submodule update 什么也没做.我每次都手动仔细检查库目录,以确定是否出现了额外的子模块.
我想避免执行某些操作,除非它们对我当前包含代码更改的存储库状态没有破坏性,并解决了我的问题,以防它是我提到的但没有运行的命令,或者其他人有另一个尝试. …
我有一个带有一些子模块的项目.其中许多是从GitHub fork中克隆到的,我为自定义mod添加了一个分支.典型的设置如下:
在本地文件夹中:MyProject1/Frameworks/SomeAmazingRepo /
$ git branch -vva
*my-fork 123456 [my-fork/my-fork] Latest commit msg from fork
master abcdef [origin/master] Latest commit msg from original repo
remotes/my-fork/my-fork 123456 [my-fork/my-fork] Latest commit msg from fork
remotes/my-fork/master abcdef [origin/master] Latest commit msg from original repo
remotes/origin/HEAD -> origin/master
remotes/origin/master abcdef [origin/master] Latest commit msg from original repo
$ git remote -v
my-fork git@github.com:MyUser/SomeAmazingRepo.git (fetch)
my-fork git@github.com:MyUser/SomeAmazingRepo.git (push)
origin git://github.com/OriginalOwner/SomeAmazingRepo.git (fetch)
origin git://github.com/OriginalOwner/SomeAmazingRepo.git (push)
Run Code Online (Sandbox Code Playgroud)
我git clone --recursive我的项目开始一个新的分拆计划,当它开始递归,它吐出了一个错误,声称它找不到这些回购存储的提交.检查后,似乎没有添加遥控器,并且分支机构在主机中留下(空)...
在本地文件夹中:MyProject2/Frameworks/SomeAmazingRepo /
$ git branch …Run Code Online (Sandbox Code Playgroud) 克隆具有大量子模块的git存储库需要很长时间.在以下示例中是~100个子模块
git clone --recursive https://github.com/Whonix/Whonix
Run Code Online (Sandbox Code Playgroud)
Git一个接一个地克隆它们.比需要的时间长得多.让(可能)假设客户端和服务器都有足够的资源同时回答多个(并行)请求.
如何使用git clone --recursive?加速/并行化git子模块的下载?
git ×10
git-clone ×3
github ×2
cloning ×1
download ×1
git-remote ×1
jenkins ×1
performance ×1
rationale ×1