2013-02-24 105 views
14

我的回购中有很多子文件夹,其中有几个build/目录我想在提交我的代码时忽略。据我了解,有两种方法可以忽略所有的文件夹:.gitignore中的子文件夹

  • */build/(Unix的通配符)
  • build/混帐忽略文件/文件夹的方式)

我我找到了Git ignore sub folders,但它有两个答案,我想知道这两种方法之间的区别是什么(无?)是。相同的规则是否适用于文件?

回答

32

build/是正确的做法。它将忽略build目录中的任何文件,无论这些目录嵌套在您的回购中有多深。

*/build/意味着忽略build目录是正好在您的回购中的一个深度。因此,例如buildfoo/bar/build内的文件不会被忽略。

如果您需要更细粒度的控制,您可以随时添加特定的目录以排除,但也不要使用!作为前缀排除。

+1

我试过各种各样的变化,并且无法在裸回购库上获得'git add。'来忽略该目录的所有子目录中的所有文件。 dirname/*,* dirname/*,* dirname/*,dirname/**','dirname/*/*'/*','dirname/*/*/*/*/*'。 – Chris 2014-11-20 17:21:01

+1

@Chris'dirname /'应该可以工作。你的意思是一个' - '回购'吗? – Simon 2014-11-20 21:15:58

+0

谢谢@Simon,所以它一定是别的。我不是说 - 不要。我在我的目录中运行'git init',然后'git add --all .'(带或不带--all),它们包含了源文件和'.gitignore',它包含了我的命名目录下的每个非空子目录。我正在使用1.9.4.msysgit.1现在解决它通过删除文件夹,然后索引后重新添加它们,认为我误解了文档或语法。 – Chris 2014-11-21 14:44:53

相关问题