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 仓库

Git - 07. gitignore的更多相关文章

  1. Git 提交 .gitignore文件

    问题描述 不知道小伙伴有木有遇到这种情况:想在工程里增加 .gitignore 文件,用于在以后提交后,过滤哪些文件或者目录. 但是,在当前工程的根目录下,执行如下执行命令后,依然不能把 .gitig ...

  2. Git中.gitignore文件不起作用

    Git中.gitignore文件不起作用的解决以及Git中的忽略规则介绍   在Studio里使用Git管理代码的过程中,可以修改.gitignore文件中的标示的方法来忽略开发者想忽略掉的文件或目录 ...

  3. git 创建.gitignore忽略不必要的文件

    问题: 创建java项目,使用git提交,有时需要忽略不必要的文件或文件夹,只保留一些基本. 例如maven创建好后,实际开发中我们只需提交:src,.gitignore,pom.xml等文件 但是有 ...

  4. Git:.gitignore和.gitkeep文件的使用 让空文件夹被跟踪

    Git:.gitignore和.gitkeep文件的使用 Git:.gitignore和.gitkeep文件的使用 https://majing.io/posts/10000001781172 .gi ...

  5. git中 gitignore 忽略文件操作

    通常,.gitignore文件被放置在存储库的根目录中.根目录也称为父目录和当前工作目录.根文件夹包含组成项目的所有文件和其他文件夹.也就是说,您可以将它放在存储库中的任何文件夹中.你甚至可以有多个. ...

  6. Git忽略.gitignore规则不生效的解决办法

    在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件). 这个文件每一行保存了一个匹配的规则例如: # 此为 ...

  7. Git的.gitignore文件配置

    .gitignore是Git工具的配置文件,用于屏蔽某些文件上传到线上. 创建.gitignore 在window系统中,不允许新建文件名以"."开头的文件,所以通过git bas ...

  8. git用.gitignore忽略指定文件

    .gitignore 配置文件用于配置不需要加入版本管理的文件,配置好该文件可以为我们的版本管理带来很大的便利,以下是个人对于配置 .gitignore 的一些心得. 1.配置语法: 以斜杠“/”开头 ...

  9. Git和.gitignore

    http://blog.csdn.net/cscmaker/article/details/8553980 在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .giti ...

随机推荐

  1. Wannafly Camp 2020 Day 6F 图与三角形 - 图论

    把黑边视为无边,那么答案之和每个点的度数有关 #include <bits/stdc++.h> using namespace std; #define int long long int ...

  2. eclipse unable to start within 45 seconds

    在eclipse4.8.2中运行tomcat8.5项目时,提示出错: Server Tomcat v8.0 Server at localhost was unable to start within ...

  3. linux 安装java jdk

    1.检查一下系统中的jdk版本 [root@localhost software]# java -version 显示: openjdk version "1.8.0_102" O ...

  4. Windows ThinPC 7 部署后续设置与本地化

    还原注销背景 %system32%\oobe\info\backgrounds 删除该目录下所有文件后变为wes7背景 24时制与非UNICODE字符乱码解决 Control Panel \ Regi ...

  5. Mysql部分存储引擎介绍

    Mysql存储引擎 什么是存储引擎 mysql中建立的库 --> 文件夹 库中建立的表 --> 文件 ​ 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制: ...

  6. api接口出现Provisional headers are shown,

    问题分析:根据反馈可以知道,发起请求,但服务器未及时响应,原因可能是超时,或者被拦截

  7. 09 部署nginx web服务器(转发uwsgi请求)

    1 配置nginx转发 $ whereis nginx $ cd /usr/local/nginx/conf $ vi nginx.conf 注释掉原来的html请求,增加uwsgi请求. locat ...

  8. MySQL | linux中数据库导出和导入

    一.数据库导出(深坑) 命令:mysqldump -u用户名 -p密码 要导出的数据库 > 导出之后的文件.sql mysqldump -uroot -p database_01 > da ...

  9. 题解【Codeforces859C】Pie Rules

    题面 一道需要一定思考的 \(\text{DP}\) . 设 \(dp_i\) 表示第 \(i\) 步走的人能得到的最大分数, \(sum_i\) 表示 \(\sum_{j=i}^n a_j\) ,即 ...

  10. 题解【洛谷P1618】 三连击(升级版)

    设三个数分别为n1.n2.n3,因为三个数的比为A:B:C,取一份量i,使得A·i=x,B·i=y,C·i=z(·是*的意思). 所以我们的代码只需要枚举i,并以此判断n1.n2.n3是否为三位数且包 ...