2012-10-02 155 views
1

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

我试着通过做git rm --cached来删除子模块,但它仍然存在,我不能将项目的文件添加到存储库。

回答

1

您是否尝试过使用新结帐功能?似乎没有git submodule remove,所以您将不得不手动编辑.gitmodules

如果你想使用签出的副本添加模块X(这已经是版本控制)到模块Y(这是新的):

  • 光盘放入X
  • 确保它是一个独立模块:不应该有任何.gitmodule(如果有的话,那么它更复杂)。
  • 运行git status以确保您没有任何未提交的更改。
  • 运行git clean -xfd摆脱什么,就是在一些.gitignore,像临时生成文件等
  • 删除.git目录
  • 复制X为Y
  • 运行git add X内Y.

您也可以在X中执行诸如git clone path-to-Y之类的操作,然后再执行rm -rf Y/.git

+0

如果我在此存储库中发生了无法更改的变化,该怎么办?这是什么情况,因为之前的GitHub仓库是私有的,它已过期,所以我无法推送更改。 – 8vius

+0

无论如何,这解决了我的问题。谢谢你,马丁。 – 8vius

+0

您可以在本地提交,而不必推送更改。 但是,当然,您也可以在未提交更改的情况下进行复制。从没有未提交更改的回购中复制只是使跟踪历史记录变得更加容易 - 您可以在提交消息中包含修订版本。 –

2
rm -rf path_to_submodule 
rm -rf .git/path_to_submodule 
rm .gitmodules 
git commit -am "removing submodule" 
git push 

.gitmodules应该是所没有的 Ë.git/应该不会有裁判从子模块

检查有:

git ls-files | grep submodule_name 
find . | grep submodule_name 

最后:

git submodule add [email protected]:johndoe/johndoe_repo.git johndoe_branch/johndoe_repo --force 

--force是可选的,如果你有阿里亚dy文件系统中的文件夹

相关问题