关于.gitignore文件规则

git提交时忽略不想提交的文件

Posted by zzreo on January 2, 2019

Git提交忽略不想提交的文件

.gitignore文件

一般来说每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。

通过.gitignore文件的配置使用,可以让我们在向Git服务器提交时,忽略我们不想提交的文件。 本篇将记录自己在平时使用git提交文件时的忽略规则。

.gitignore的忽略规则

.gitignore的匹配规则是从上到下的,使用时应该注意书写顺序,在前面书写范围过大的规则,会导致后面的规则无效。

  • 首先 # 为注释符号。以#号为开头的内容都将被注释掉,可以使用\转译显示。
  • 空格 为分隔符。不匹配任何文件,同样可以使用\转译。
  • / 用于目录相关匹配。以/开头表示匹配从根目录开始,如/.idea;以/结束表示匹配该目录下的所有文件(包括目录本身),如.idea/。
  • 星号 表示匹配多个任意字符。使用两个*表示匹配中间任意目录,如start/1/end,start/2/3/end。
  • 问号 表示匹配一个任意字符。
  • [] 表示匹配方括号里面的任意一个字符,如[qwe],[0-9],[a-z]等。
  • ! 表示不忽略。以!开头加匹配规则,会不忽略匹配到的文件,但要注意更高层级的匹配规则。

忽略规则的举例

  • *.ini 忽略所有以.ini结尾的文件。
  • !a 忽略规则内a文件。
  • /a 忽略根目录下的a文件,不包含子目录下的a文件,如b/a。
  • a/ 忽略整个a文件夹下面的文件。
  • a/: 忽略整个文件夹下面除了a文件的所有文件。
  • /a: 忽略跟目录下面的a文件
  • /*.a: 忽略根目录下的.a结尾文件,不包含其他子目录下的。
  • **/a: 忽略任何子目录下的a文件。
  • a/*: 忽略任何a目录下的文件。
  • /a/*:只忽略根目录下a目录下的文件。

未完待续 つつく