我正在尝试创建一个新的存储库并向其添加两个项目。其中一个项目已经在Git源代码控制之下,所以我复制了项目并删除了.git文件夹并删除了我拥有的存储库。当我将项目添加到我的存储库时,那个不受源代码控制的项目会被添加好,但另一个项目会被添加为子模块(GitHub上的绿色文件夹)。
我尝试通过在其上执行git rm --cached
删除子模块,但它仍然存在,我无法将项目的文件添加到存储库。
答案 0 :(得分:2)
rm -rf path_to_submodule
rm -rf .git/path_to_submodule
rm .gitmodules
git commit -am "removing submodule"
git push
.gitmodules
应该不存在
e .git/
不应该有来自子模块的引用
检查:
git ls-files | grep submodule_name
find . | grep submodule_name
最后:
git submodule add git@git.whatever.com.br:johndoe/johndoe_repo.git johndoe_branch/johndoe_repo --force
如果您的文件系统中已有该文件夹,则 --force
是可选的
答案 1 :(得分:1)
你尝试过新的结账了吗?似乎没有git submodule remove
,因此您必须手动编辑.gitmodules
。
如果要使用签出副本将模块X(已经在版本控制下)添加到模块Y(这是新的):
.gitmodule
(如果有的话,那就更复杂了。)git status
以确保您没有任何未提交的更改。git clean -xfd
以删除某些.gitignore
中的任何内容,例如临时构建文件等。.git
目录git add X
您还可以在X中执行类似git clone path-to-Y
的操作,然后执行rm -rf Y/.git
。