没有子模块的嵌套git存储库?

ste*_*evo 32 git

似乎父代repo中的git repo不包含在父代的提交中,除非它被设置为子模块.是否可以覆盖此行为并将嵌套的git repo视为任何其他目录?我不想通过子模块依赖外部依赖,但想使用git来管理项目中的这些依赖项.

Von*_*onC 7

1 /您可以通过以下方式覆盖:

  • 无论是混帐配置设置:设置环境变量$GIT_DIR
    定义你的.git嵌套的Git工作树的目录作为外部 .git(外部两个嵌套式回购和主回购)
  • 或通过设置您的嵌套式回购"N" 以外的主要回购,但结账是回购"N" 里面主要回购:
core.worktree

设置工作树根目录的路径.这可以被GIT_WORK_TREE环境变量和--work-tree命令行选项覆盖

在这两种情况下,我们的想法是拥有一个没有任何.git子目录的嵌套工作树.

2 /对于子模块,嵌套的git repo实际上并不包含在父repo中.在父树中创建
一个特殊条目来记录外部Git SHA1.

new file mode 160000
index 0000000..4c4c5a2
Run Code Online (Sandbox Code Playgroud)

另见" Git子模块的性质 "(答案的第三部分)

  • 所以没有选项让git将嵌套的.git目录视为普通目录? (5认同)

Dre*_*eur 5

我找到了另一种似乎对我有用的方法

如果你git add somefolder/< - 确保你有/最后一个,那么它将添加所有文件,而不是像子模块一样对待它.

这里提到更多:http : //debuggable.com/posts/git-fake-submodules : 4b563ee4-f3cc-4061-967e-0e48cbdd56cb

  • 这似乎不再起作用,git 警告有关添加嵌套 git 存储库并尝试将其添加为我的子模块。 (2认同)