我想将项目中的一个文件夹更改为子模块。 这是我的(简化的)目录结构:
|-app <- the root of git project
|--themes
|--plugins
|--lib
现在,我想将app / plugins转换为子模块,以便将此目录中的更改提交到单独的reposiotry中。
为插件设置新的回购后,我已经累了git submodule add <submodule-repository> plugins
,但后来收到了一条消息
app / plugins'已存在于索引
中
确保它存在于索引中,因为它是作为主项目存储库的一部分进行跟踪的。
我该如何解决?我是否应该删除主.git
文件夹,将app/plugins
添加到.gitignore,再次提交,然后运行git submodule add
?
这实际上提出了另一个问题,是否应将作为项目子模块的文件夹添加到包含子模块的项目的.gitignore
?
答案 0 :(得分:1)
我设法回答了我自己的问题。也许我发布的太快了。不过,也许它会在将来帮助一些人:
为了将当前项目中跟踪的文件夹转换为该项目的子模块,我采取了以下步骤:
git rm -rf <folder_that_will_be_a_submodule>
; rm -rf
; .git
所在的位置); git submodule add <repository>
; .gitignore
删除对现在是子模块的文件夹的引用(如果已在那里引用)。希望它会对某人有所帮助。