1

我想将 submodule_A 放置在 master 并将 submodule_B 放置在 new_branch。

但是,在 master 上,我可以在 repo 中看到 submodule_A 和 submodule_B。

如何将右侧分支的两个子模块分开?

谢谢您的回复!!!

注意:我之前使用过以下命令。

git submodule add -b new_branch submodule_B;

但是 submodule_B 仍然存在于 master 分支上。

当我结帐主人时,git显示

warning: unable to rmdir submodule_B

当我结帐 new_branch 时,git 显示

warning: unable to rmdir submodule_A

===============================================

例如

https://github.com/ShawnHuang/.vim/tree/master/bundle

所有插件都是我 repo 中的子模块。

在分支主机上,我想使用 ultisnips。

而且,在分支垃圾/snipmate 上,我想使用 snipmate。

我可以在 github 的不同分支上分离两个子模块。

但我不能在本地做。

4

2 回答 2

1

创建新的分支

git branch submodule-b

签出该模块

git checkout submodule-b

添加所有子模块文件并提交它们

git add .
git commit -m 'Submodule new branch created'

去主/子模块A分支

git checkout submodule-a
于 2013-07-29T14:06:31.137 回答
1

Git 不会删除未使用的子模块工作副本

如果您创建 2 个分支,具有 2 个不同的子模块:

$ git init
$ git checkout -b one
$ git submodule add git@github.com/a/repo.git one
$ git checkout -b two
$ git submodule add git@github.com/another/repo.git two

当它们不属于当前分支时,它们被简单地视为未跟踪的文件。即除非您自己在切换分支时删除未引用的子模块,否则它们将出现在所有分支中:

$ git checkout master
$ ls
one two
$ git checkout one
$ ls
one two
$ git checkout two
$ ls  
one two

一个简单的方法来做你所要求的就是在子模块文件夹不相关时移动它:

$ git checkout one
$ mv two .two
$ git checkout two
$ mv .two two
$ mv one .one
于 2013-07-29T15:10:12.240 回答