Git - 07. gitignore

十年热恋 提交于 2020-03-12 15:47:53

1. 概述

  1. 开发的过程中, 无法保证项目文件夹下的所有东西, 都是想传到版本库的
    1. 比如 maven 项目的 target 目录
    2. 配置好之后, 使用 git add .命令, 这些文件\目录也不会被 stage

2. 文件位置

  1. 位置
    1. 工作目录
  2. 文件名

    .gitignore
  3. 注意
    1. 建议在创建成功之后, 把 .gitignore 文件也添加到 git 仓库中

3. 思路

  1. 编写文件
    1. 在 .gitignore 文件里指定规则
  2. 校验文件
    1. 执行 git add .
    2. git 对 untrack 和 changed 文件做匹配
      1. 如果符合 .gitignore 里的规则, 则不会做 stage 操作

4. 语法

1. 注释

  1. 概述
    1. 注释不论在什么语言, 都是很重要的
  2. 语法

    # 井号开头的行, 就是注释
    # 如果真有文件是以 # 开头, 可以在前面加 \

2. 普通文件

  1. 概述
    1. 最基本的规则
  2. 配置
    1. 概述
      1. 直接输入文件名
    2. 约定
      1. 支持通配符
      2. 以 workspace 为 pwd
        1. / 开头的路径, 也会从 workspace 开始查找
    3. 例子

      # 1. 单个文件
      Desktop.ini
      # 2. 目录下的某个文件
      build/file/file
      # 3. 某一类文件
      *.map
      # 4. 某几类文件
      *.py[co]
      # 5. 取反
      !Desktop.ini
    4. 其他
      1. 取反的配置, 建议尽量不要冲突

3. 目录

  1. 概述
    1. 单个文件的配置, 效率太低
  2. 配置
    1. 概述
      1. 目录名匹配
    2. 约定
      1. /
        1. 如果过滤项不以 / 结尾, 则会被视为 文件
        2. 如果要过滤 目录, 建议以 / 结尾
    3. 配置

      # 1. 过滤目录
      target/

4. 通配符

  1. 概述
    1. 单独讲下 通配符
  2. 通配符
        1. 匹配除了 / 之外的任意个字符
    1. ?
      1. 匹配除了 / 之外的一个字符
    2. []
      1. 匹配 [] 中的一个字符
    3. **
      1. **/file
        1. 匹配项目里每个角落的 file
      2. dir/**
        1. 匹配目录下的所有项目
      3. a/**/b
        1. 匹配 a 下的 所有 b
          1. a/b
          2. a/x/b
          3. a/x/y/b

4. 检查

  1. 概述
    1. 检查 语法 与 忽略文件
  2. 命令

    > git check-ignore -v  <fileToCheck>

ps

  1. ref
    1. 官方说明

    2. 廖雪峰

    3. github 仓库

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!