首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将公共代码添加为git子模块的问题:“已存在于索引中”

将公共代码添加为git子模块的问题:“已存在于索引中”
EN

Stack Overflow用户
提问于 2012-10-15 22:55:07
回答 8查看 176.2K关注 0票数 272

我是git新手,如果能帮助我添加子模块,我将不胜感激。我已经收到了两个共享一些公共代码的项目。共享代码刚刚被复制到两个项目中。我为通用代码创建了一个单独的git代码库,并将其从项目中删除,并计划将其添加为git子模块。

我使用了git子模块add的path选项来指定文件夹:

代码语言:javascript
复制
git submodule add url_to_repo projectfolder

但随后得到了错误:

代码语言:javascript
复制
'projectfolder' already exists in the index"

这是我的存储库所需的结构:

代码语言:javascript
复制
repo
|-- projectfolder
    |-- folder with common code

可以直接在存储库中添加git子模块,也可以将其添加到新文件夹中,但不能添加到项目文件夹中。问题是它确实需要放在项目文件夹中。我能对此做些什么?我对git子模块add的path选项有什么误解?

EN

回答 8

Stack Overflow用户

发布于 2018-07-08 00:04:28

您需要首先为git路径删除子模块git存储库(在本例中为projectfolder)。

代码语言:javascript
复制
rm -rf projectfolder

git rm -r projectfolder

然后添加子模块

代码语言:javascript
复制
git submodule add <git_submodule_repository> projectfolder
票数 89
EN

Stack Overflow用户

发布于 2016-07-25 23:02:26

只是为了用人类的语言来澄清错误试图告诉你的是什么:

您不能在此文件夹中创建已在主存储库中跟踪的存储库。

例如:您有一个名为AwesomeTheme的主题文件夹,它是一个专用存储库,您尝试将其直接转储到您的主存储库(如git submodule add sites/themes )中,您会得到此"AwesomeTheme" index already exists

您只需要确保在主存储库的版本跟踪中没有sites/themes/AwesomeTheme,这样就可以在那里创建子模块。

所以要解决这个问题,在你的主存储库中,如果你有一个空的sites/theme/AwesomeTheme目录,那么就删除它。如果您已经提交了主存储库中的sites/theme/AwesomeTheme目录,则需要使用如下命令清除它的所有历史记录:

代码语言:javascript
复制
git filter-branch --index-filter \
              'git rm -r --cached --ignore-unmatch sites/theme/AwesomeTheme'     HEAD

现在可以运行git submodule add git@AwesomeTheme.repowhateverurlthing sites/themes/AwesomeTheme

由于主存储库以前从未在sites/themes/AwesomeTheme中看到过任何内容(也称为索引),因此它现在可以创建它。

票数 5
EN

Stack Overflow用户

发布于 2012-10-16 17:18:56

我用另一种方式让它正常工作。从一个空的repo开始,在名为"projectfolder/common_code“的新文件夹中添加子模块。之后,就可以在projectfolder中添加项目代码了。详细信息如下所示。

在空的repo类型中:

代码语言:javascript
复制
git submodule add url_to_repo projectfolder/common_code

这将创建所需的文件夹结构:

代码语言:javascript
复制
repo
|-- projectfolder
    |-- common_code

现在可以添加更多的子模块,并且可以将项目代码添加到projectfolder。

我还不能说为什么它是这样工作的,而不是另一个。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12898278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档