2016-11-29 366 views
0

假设我有我的仓库结构是这样的:git仓库:如何忽略库的子文件夹(即其子文件夹的.git /)

MyApp/ 
    .git/ 
    .gitignore 
    File1 
    dir1/ 
     File2 
    src/ 
     File3 
     File4 
     module1/ 
      .git/ 
      .gitignore 
      foo.cpp 
     module2/ 
      .git/ 
      .gitignore 
      bar.cpp 
     ... 

换句话说,我有一个包含一些深层次的子文件夹被称为资源库子文件夹。

如何在MyApp存储库中写入.gitignore或通过其他方式忽略MyApp视图中的所有存储库子文件夹?它们显然被忽略,因为它们已经由其他独立存储库管理。

- 或 -

任何标准的方式来处理这个“混帐:库库中”的情况下,如果“忽略”是不是要走的路?

+0

有人谁留下-1分,请你解释一下吗?这样我就可以改进我问这个问题的方式。 –

回答

1

我的目的是自动忽略包含.git/

文件夹文件夹的那些内容是已经忽视,作为主要的Git回购只会录制成gitlinkspecial entry in the index)。
这只会记录module1module2(而不是他们的内容)

如果你想记录模块1,你仍然需要一个的.gitignore(用一个简单的src/module*,没有尾随斜线,你千万不要忽视一个文件夹,只有一个gitlink)
你不能指示git自动忽略一个gitlink,你必须在.gitignore中指定它。

+0

这似乎不正确。至少在我的cygwin git中:较低版本库中的'1.c'和'2.c'这样的文件可以添加到上面的git版本库中。 –

+0

你使用的是什么git版本?不需要cygwin,git for Windows就足够了。 – VonC

+0

你是对的! Windows的Git会自动跳过子库!对我来说,奇怪的是Cygwin上的Git版本比2.8.3的Git版本更高(2.6.3)。 –

0

我正确理解你的问题,然后虽然没有“自动忽略通过.git标识”,一个简单的方法来忽略module1,2 .... n个子树是创建一个.gitignore文件myApp/src文件夹并插入值:

module*/ 

然后保存该文件,您应该达到所需的结果。

+1

要仅匹配目录,请写入'module * /',即有斜杠。 – j6t

+0

谢谢@ j6t!相应地测试并增强了我的答案 – Pancho