保留子目录的git日志,而不是作为子模块

保留子目录的git日志,而不是作为子模块,git,github,Git,Github,我在一个github存储库中有两个应用程序目录,它们有单独的git日志 $ git rm --cached store_app rm 'store_app' $ git rm --cached blog_app fatal: not removing 'blog_app' recursively without -r 我对这两个目录做的唯一不同的事情是,在超级目录的git init之前,我对其中一个目录做了git commit,之后对另一个目录做了git init。(两个子目录都没有远程目录)

我在一个github存储库中有两个应用程序目录,它们有单独的git日志

$ git rm --cached store_app
rm 'store_app'
$ git rm --cached blog_app
fatal: not removing 'blog_app' recursively without -r
我对这两个目录做的唯一不同的事情是,在超级目录的
git init
之前,我对其中一个目录做了
git commit
,之后对另一个目录做了
git init
。(两个子目录都没有远程目录)


只有“blog_app”目录按预期工作。我想保留
store\u app
目录的git日志。这不应该是一个“子项目”

在根目录上的
git init
之后,它就不是一个子模块了。store_应用程序目录保持子模块在此:

$ git rm --cached store_app   # index file name
$ git add store_app           # directory name
但不在此(忽略子目录提交):


这对我来说很有趣,因为当您将一个repo作为子目录移动到另一个repo时,它就变成了一个子模块。(没有
.gitmodules
),但不能通过在子目录中提交将子目录变成子项目。(当然你会添加
git子模块
)如果它是一个子项目,并且没有它的
.gitmodules
文件(仅带有索引文件),我不确定用例。如果你在根目录下添加
git init
,将
store\u app
blog\u app
作为子目录,然后两者都将成为根目录下Git存储库的一部分。它们将共享相同的历史记录、相同的远程文件,并且在单个项目中只会有一些子目录。然后,当您在根目录下
git init
时,一个已经是git repo和提交的子目录会自动变成“子模块”?不,对于根存储库来说,它只是一个文件夹(因为它的
.git
文件夹被自动忽略)。因此,您必须在根目录和子存储库中跟踪其历史记录。但不,子模块不会神奇地出现。但还有一个问题,当
git ls文件--缓存
时,它有
store_app
文件,并且随着我在文件夹中的更改,该文件会更新。例如
subject commit 9C29343DDC908A460CCA2276AD77C0794e92734
(但我没有看到任何
.gitmodules
文件)
$ git rm --cached store_app   # index file name
$ git add store_app           # directory name
$ git rm --cached store_app
$ git init
$ git add store_app