如何阻止Git自动添加嵌入式存储库?

时间:2018-11-26 21:18:46

标签: git

我们有一个大型存储库,其中需要嵌套两个存储库,如下所示:

Root
+- .git
+- Child1
   +- .git
+- Child2
   +- .git

我们最近遇到了一个问题,其中运行git add .导致Git将这两个存储库都添加为嵌入式存储库。我们不想要这个。我希望Git忽略它们。 是否可以设置Git配置设置来禁用此行为?

我们可以将子目录名称添加到.gitignore文件中:

Child1
Child2

但这将导致整个存储库中所有名为Child1Child2的目录/文件被忽略。我们尝试了

Child1/**
Child2/**

但是Git仍将存储库嵌入git add

1 个答案:

答案 0 :(得分:2)

gitignore手册页中:

   ·   A leading slash matches the beginning of the pathname. For example,
       "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c".

因此,将您的.gitignore文件更改为包含/Child1/Child2,然后您应该拥有所需的内容。

但是,另一种解决方案可能是将两个子存储库实际变成真正的git子模块。这将带来额外的好处,即自动将那些子模块放入每个同步的“主”存储库中,并进行更严格的版本控制(主存储库中的每个提交都将具有明确指定的子模块状态)。根据您的实际情况,这可能不是好主意。

相关问题