如何删除Git子模块?
顺便说一句,有什么理由我不能干脆做到
git submodule rm whatever吗?
我试图将子模块放入回购.问题是当我克隆父repo时,子模块文件夹是完全空的.
有没有办法让它git clone parent_repo实际上把数据放在子模块文件夹中?
例如,http://github.com/cwolves/sequelize/tree/master/lib/,nodejs-mysql-native指向在外部git的子模块,但是当我结账的sequelize项目,该文件夹为空.
我们使用git子模块来管理一些依赖于我们开发的许多其他库的大型项目.每个库都是作为子模块引入依赖项目的单独repo.在开发过程中,我们经常想要抓住每个依赖子模块的最新版本.
git有内置命令来执行此操作吗?如果没有,Windows批处理文件或类似文件怎么样呢?
我有一个带有Git子模块的项目.它来自ssh:// ... URL,并且在提交A.提交B已被推送到该URL,我希望子模块检索提交,并更改为它.
现在,我的理解是git submodule update应该这样做,但事实并非如此.它没有做任何事情(没有输出,成功退出代码).这是一个例子:
$ mkdir foo
$ cd foo
$ git init .
Initialized empty Git repository in /.../foo/.git/
$ git submodule add ssh://user@host/git/mod mod
Cloning into mod...
user@host's password: hunter2
remote: Counting objects: 131, done.
remote: Compressing objects: 100% (115/115), done.
remote: Total 131 (delta 54), reused 0 (delta 0)
Receiving objects: 100% (131/131), 16.16 KiB, done.
Resolving deltas: 100% (54/54), done.
$ git commit -m "Hello world."
[master (root-commit) 565b235] Hello world.
2 …Run Code Online (Sandbox Code Playgroud) git submodule add -b工作怎么样?
添加具有特定分支的子模块后,新的克隆存储库(之后git submodule update --init)将处于特定提交,而不是分支本身(git status在子模块上显示"当前不在任何分支上").
我无法找到任何信息.gitmodules或.git/config关于子模块的分支或任何具体的承诺,那么,如何Git的数字出来?
此外,是否可以指定标签而不是分支?
我正在使用1.6.5.2版.
我已经创建了一个带有子模块的git存储库.我能够告诉子模块本身更改其远程存储库路径,但我不知道如何告诉父存储库如何更改子模块的远程存储库路径.
如果我有点不幸并且必须手动操作,我不会感到惊讶,因为即使删除子模块也不容易.
注意:虽然描述的用例是关于在项目中使用子模块,但同样适用于git cloneHTTP上的存储库的常规.
我在Git控制下有一个项目.我想添加一个子模块:
git submodule add http://github.com/jscruggs/metric_fu.git vendor/plugins/metric_fu
Run Code Online (Sandbox Code Playgroud)
但我明白了
...
got 1b0313f016d98e556396c91d08127c59722762d0
got 4c42d44a9221209293e5f3eb7e662a1571b09421
got b0d6414e3ca5c2fb4b95b7712c7edbf7d2becac7
error: Unable to find abc07fcf79aebed56497e3894c6c3c06046f913a under http://github.com/jscruggs/metri...
Cannot obtain needed commit abc07fcf79aebed56497e3894c6c3c06046f913a
while processing commit ee576543b3a0820cc966cc10cc41e6ffb3415658.
fatal: Fetch failed.
Clone of 'http://github.com/jscruggs/metric_fu.git' into submodule path 'vendor/plugins/metric_fu'
Run Code Online (Sandbox Code Playgroud)
我设置了HTTP_PROXY:
c:\project> echo %HTTP_PROXY%
http://proxy.mycompany:80
Run Code Online (Sandbox Code Playgroud)
我甚至为http代理设置了全局Git:
c:\project> git config --get http.proxy
http://proxy.mycompany:80
Run Code Online (Sandbox Code Playgroud)
有没有人获得HTTP提取以始终通过代理工作?真正奇怪的是GitHub上的一些项目工作正常(awesome_nested_set例如),但其他项目一直都失败(例如rails).
如何取消子模块git子模块(将所有代码重新放入核心)?
就像"应该"我一样,如"最佳程序"......
我想在我的Git超级项目中更改Git子模块的目录名.
假设我的.gitmodules文件中有以下条目:
[submodule ".emacs.d/vimpulse"]
path = .emacs.d/vimpulse
url = git://gitorious.org/vimpulse/vimpulse.git
Run Code Online (Sandbox Code Playgroud)
我必须键入什么来移动.emacs.d/vimpulse目录.emacs.d/vendor/vimpulse而不首先删除它(在这里和这里解释
),然后重新添加它.
Git真的需要子模块标签中的整个路径
[submodule ".emacs.d/vimpulse"]
Run Code Online (Sandbox Code Playgroud)
或者是否也可以只存储子项目的名称?
[submodule "vimpulse"]
Run Code Online (Sandbox Code Playgroud) 我有一个子模块的项目 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文件的一部分,所以我看不到它从哪里获得这条路径.
有任何想法吗?