如何忽略git中的子文件夹

时间:2014-05-29 13:15:58

标签: git

我想gitignore文件夹中的子文件夹。 这是我当前的目录结构。

var
  www
    repo_name
      .gitignore
      README.md
      vendors
        vendor_a
        vendor_b
        vendor_c

我想忽略文件夹vendors中的所有内容,但是当我在.gitignore内编写此规则时,它会忽略vendors文件夹本身。

#.gitignore
repo_name/vendors/

但是上面的规则忽略了文件夹vendors,这不是我想要的。

2 个答案:

答案 0 :(得分:0)

如果忽略文件夹vendors内的所有内容,git将没有该文件夹存在的记录,因为git不会跟踪文件夹,除非是为了获取其中的跟踪内容。如果你想在新的结账时使用该文件夹,你必须使用post-checkout钩子来创建它,或者(强制地,git add -f)跟踪其中的占位符文件 - 空{{1或许。

示范:

.gitignore

Git只关心$ git init Initialized empty Git repository in ... $ echo a/ >.gitignore $ mkdir a $ touch a/.gitignore $ touch a/vendor{1,2,3} $ git add -f a/.gitignore $ git add . $ git ls-files .gitignore a/.gitignore $ git check-ignore -v a/vendor1 .gitignore:1:a/ a/vendor1 中的那个文件,除非你强迫它,否则不会再添加它。

答案 1 :(得分:-1)

尝试在最后添加*repo_name/vendors/*