保留子目录的git日志,而不是作为子模块
我在一个github存储库中有两个应用程序目录,它们有单独的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。(两个子目录都没有远程目录)
$ 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