如何删除Git子模块?
顺便说一句,有什么理由我不能干脆做到
git submodule rm whatever吗?
git submodule add -b工作怎么样?
添加具有特定分支的子模块后,新的克隆存储库(之后git submodule update --init)将处于特定提交,而不是分支本身(git status在子模块上显示"当前不在任何分支上").
我无法找到任何信息.gitmodules或.git/config关于子模块的分支或任何具体的承诺,那么,如何Git的数字出来?
此外,是否可以指定标签而不是分支?
我正在使用1.6.5.2版.
我有一个子模块的项目 lib/three20
我的.gitmodule文件看起来像这样:
[submodule "lib/three20"]
path = lib/three20
url = git://github.com/facebook/three20.git
Run Code Online (Sandbox Code Playgroud)
我过去克隆过这个没有错误,(git submodule init接下来是a git submodule update)并且它已经工作了一段时间.
我试图将其克隆到一台新机器,现在我收到此错误git submodule init:
No submodule mapping found in .gitmodules for path 'Classes/Support/Three20'
Run Code Online (Sandbox Code Playgroud)
该路径只是Xcode中的一个空文件夹,用于存放其他目录中的项目.它不是.gitmodules文件的一部分,所以我看不到它从哪里获得这条路径.
有任何想法吗?
我不清楚以下是什么意思(来自git submodule update docs):
...将使子模块HEAD分离,除非
--rebase或--merge指定...
怎么--rebase/ --merge改变事情?
我的主要用例是有一堆中央存储库,我将通过子模块嵌入到其他存储库中.我希望能够改进这些中央回购,直接在他们的原始位置,或从他们的嵌入回购(通过子模块使用它们的那些).
我有一个项目,用于在路径中包含子模块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 repo时,其中一个子模块位于一个带有奇怪名称的分支中,我认为这意味着它有一个" 分离头 "(我甚至不确定这意味着什么).
如果我检查我的主分支的子模块,然后运行" git submodule update --init --recursive"它再次发生.
有人知道发生了什么吗?
我有我的第一个Git Submodule体验.
我有一些项目依赖于同一个子项目.我保持这些项目同步,所以我使用"子模块分支"功能(例如git submodule add -b master [URL]).
虽然我希望公共GitHub存储库传达子模块关系,但在我自己的工作流程中,我真的只想在我的磁盘上有一个共享代码库的克隆.我想我可以设置子模块,然后用符号链接做一个切换器.但是当我这样做时,我得到了这个:
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
typechange: draem
Run Code Online (Sandbox Code Playgroud)
所以Git显然认为它是一个符号链接,而不是跟随目录.
是否有任何工作流程,我似乎可以使用子模块,但我的本地文件系统上只有一个克隆?
最初我有以下(简化)回购结构:
MyRepo
external1/MySub (git submodule)
.gitsubmodules
Run Code Online (Sandbox Code Playgroud)
哪里
$ cat .gitsubmodules
[submodule "external1/MySub"]
path = external1/MySub
url = user@repo:/remoterepo/externals/MySub.git
Run Code Online (Sandbox Code Playgroud)
然后我想将MySubmodule移动到同一个git存储库中的另一个目录,例如external2,所以结构如下:
MyRepo
external2/MySub (git submodule)
.gitsubmodules
Run Code Online (Sandbox Code Playgroud)
我做了什么,并且已经足够了,我只是将(通过操作系统mv)external1/MySub目录移动到external2/MySub并将.gitsubmodules文件编辑为:
$ cat .gitsubmodules
[submodule "external2/MySub"]
path = external2/MySub
url = user@repo:/remoterepo/externals/MySub.git
Run Code Online (Sandbox Code Playgroud)
在此更改后,我收到以下错误:
$ git status
fatal: Could not chdir to '../../../../../repo/external/MySub': No such file or directory
fatal: 'git status --porcelain' failed in submodule repo/external2/MySub
Run Code Online (Sandbox Code Playgroud)
我错过了什么?这种搬迁需要做出任何其他改变吗?
(我在Windows 8.1上使用git版本1.8.3rc3)
我是github的新手.
我的机器上有一个github仓库.我想在我的回购中加入另一个回购(作为第三方).我相信我应该先做一个分叉.但是如何将它包含在我的本地回购中呢?
我尝试了子模块,但没有成功......
谢谢.
我有一个Git仓库中的子项目,我想删除但是我无法删除.在GitHub Web界面上,子模块显示为黑色(或灰色)文件夹图标,不可单击.

该文件夹存在一些问题,即使我的本地代码在该文件夹中有文件并且我推送到我的存储库,更改也不会应用于GitHub远程.不知何故,此文件夹被忽略.我检查过它不在.gitignore文件中.
在尝试删除我使用的子项目时:
git submodule deinit submodule-name
Run Code Online (Sandbox Code Playgroud)
但它给出了错误
错误:pathspec'submodule-name'与git已知的任何文件都不匹配.你忘了'git add'吗?
这是什么问题?