1

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

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

4

2 回答 2

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如果您的文件系统中已有该文件夹,则为可选

于 2016-05-20T02:07:11.347 回答
1

你试过新鲜结帐了吗?似乎没有git submodule remove,所以您必须手动编辑.gitmodules.

如果您想使用签出的副本将模块 X(已经在版本控制下)添加到模块 Y(新的):

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

您也可以git clone path-to-Y在 X 之后执行类似的操作rm -rf Y/.git

于 2012-10-03T06:10:26.560 回答