无法将现有Git存储库添加到新存储库中

时间:2012-10-02 19:26:46

标签: git github git-submodules

我正在尝试创建一个新的存储库并向其添加两个项目。其中一个项目已经在Git源代码控制之下,所以我复制了项目并删除了.git文件夹并删除了我拥有的存储库。当我将项目添加到我的存储库时,那个不受源代码控制的项目会被添加好,但另一个项目会被添加为子模块(GitHub上的绿色文件夹)。

我尝试通过在其上执行git rm --cached删除子模块,但它仍然存在,我无法将项目的文件添加到存储库。

2 个答案:

答案 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(这是新的):

  • Cd into X
  • 确保它是一个独立的模块:不应该有.gitmodule(如果有的话,那就更复杂了。)
  • 运行git status以确保您没有任何未提交的更改。
  • 运行git clean -xfd以删除某些.gitignore中的任何内容,例如临时构建文件等。
  • 删除.git目录
  • 将X复制到Y
  • 在Y。
  • 中运行git add X

您还可以在X中执行类似git clone path-to-Y的操作,然后执行rm -rf Y/.git