Git的忽略反转规则不能像我预期的那样工作

时间:2013-11-08 19:44:18

标签: git bower

我有一棵树:

- bower_components
  - jquery
    - .bower.json
    - jquery.js
    - ...
  - underscore
    - .bower.json
    - underscore.js
    - ...
  - ...

我想忽略bower_components/.bower.json个文件以外的所有内容,所以我写了.gitignore

bower_components/**/*
!bower_components/**/.bower.json

根据gitignore,man git应该忽略除bower_components之外的.bower.json子目录中的所有内容,但事实并非如此。我不知道我做错了什么,我尝试了不同的组合,包括!.bower.json,但没有运气。

git check-ignore bower_components/jquery/.bower.json -v给了我:

.gitignore:1:bower_components/**/*      bower_components/jquery/.bower.json

ls bower_components/**/.bower.json为我提供了.bower.json个文件的列表。

我有一个测试树可以玩:nocorp.me/32430Z3J1o2k

3 个答案:

答案 0 :(得分:1)

也许这是一个错误,也许不是,但我不得不使用单个星号而不是双星:

bower_components/*/*
!bower_components/*/.bower.json

答案 1 :(得分:0)

我认为你不想在这种情况下使用双星。

!**/.bower.json
bower_components/*

答案 2 :(得分:0)

我不确定你是这种情况,但**是在1.8.2中添加的,所以如果你使用更旧的东西它将无法正常工作

git --version