.gitignore文件语法

.gitignore文件是一个文本文件,用于告诉Git哪些文件或目录不应被版本控制系统跟踪。

  1. 基本语法

    • 每行指定一个匹配模式。
    • # 开头的行为注释,会被Git忽略。
    • 空行不匹配任何文件,可以用作视觉分隔。
  2. 匹配模式

    • 标准的glob模式匹配。这包括:
      • * 匹配零个或多个任意字符。
      • ? 匹配任意一个字符。
      • [abc] 匹配任何一个列在方括号中的字符(这里是a、b或c)。
      • ** 用在路径的开始、中间或结尾,匹配任何目录层次。例如**/foo匹配任意位置的foo目录或文件。
  3. 特定目录

    • / 在模式开始处使用表示目录。例如:/foo 匹配根目录下的foo目录或文件,而不匹配任意子目录中的foo
    • / 在模式的末尾表示该模式只匹配目录。例如,foo/匹配名为foo的目录,而不是文件。
  4. 否定模式

    • 在模式前加上!表示否定前面的模式。例如,!lib/会保留跟踪名为lib的目录,尽管其他规则可能会忽略该目录。
  5. 范例

    • 忽略所有.log文件:*.log
    • 忽略特定目录及其子目录中的所有.txt文件:**/logs/*.txt
    • 忽略根目录下的temp目录,不包括其他任何名为temp的目录:/temp/
    • 保留跟踪名为todo.txt的文件,即使其他规则可能会忽略它:!todo.txt

使用.gitignore文件时,需要将它放在项目的根目录下。此外,可以在项目的不同目录下使用多个.gitignore文件来指定更详细的忽略规则。这些文件会一起工作,构成一个统一的忽略模式集合。