Gitignore glob path



我的项目中有这样的文件层次结构:

assets
  --script.js
  --a.html
  --admin
    --carousel.js
    --documentation.html

我想在.gitignore中添加规则,这样除了js文件之外,资产中的所有文件都会被忽略。我在.gitignore中尝试了以下操作,它只考虑第一级的script.js:

assets
!assets/*.js

然后尝试了这个也只考虑script.js:

assets
!assets/**/*.js

其他图案如!assets//.js或!assets/**.js不起作用。我想将所有级别的javascript文件都视为未跟踪文件。

我正在Git 2.1.0版本中尝试此操作。

您不应该忽略任何目录,否则它将不会在这些目录中再次包含.js文件。请参阅What';Git忽略目录和目录/*之间的区别是什么?。

所以.gitignore应该是:

assets/**
!assets/**/
!assets/**/*.js

可能是文件已被跟踪。请取消跟踪其他文件并将其添加到您的ig 中

# Ignore everything
*
# Don't ignore directories, so we can recurse into them
!*/
# Don't ignore .gitignore and *.js files
!.gitignore
!*.js

最新更新