我们有一个大型存储库,其中需要嵌套两个存储库,如下所示:
Root
+- .git
+- Child1
+- .git
+- Child2
+- .git
我们最近遇到了一个问题,其中运行git add .
导致Git将这两个存储库都添加为嵌入式存储库。我们不想要这个。我希望Git忽略它们。 是否可以设置Git配置设置来禁用此行为?
我们可以将子目录名称添加到.gitignore文件中:
Child1
Child2
但这将导致整个存储库中所有名为Child1
和Child2
的目录/文件被忽略。我们尝试了
Child1/**
Child2/**
但是Git仍将存储库嵌入git add
。
答案 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子模块。这将带来额外的好处,即自动将那些子模块放入每个同步的“主”存储库中,并进行更严格的版本控制(主存储库中的每个提交都将具有明确指定的子模块状态)。根据您的实际情况,这可能不是好主意。