git如何使用.gitignore文件设置忽略文件规则

目录

  • 一.前言
  • 二.讨论一下.gitignore文件规则
  • 三.具体.gitignore文件写法示例
  • 四.讨论一下.gitignore文件规则的生效优先级
  • 五.其他

一.前言

我们使用git进行版本控制的过程中,会希望一些文件不要进行提交,那这个时候就可以利用一些方法达到这个目的,这篇文章讨论一下如何使用.gitignore文件来进行忽略的方法。

二.讨论一下.gitignore文件规则

先简单讨论一下常用的.gitignore文件编写规则,其实比较像正则表达式中的一些内容。

  • 一行表示一个规则。
  • 使用#表示注释。
  • 使用*匹配若干字符(0个/一个/多个)。
  • 使用?匹配一个字符。
  • 使用[]匹配字符列表。
  • !表示否定(不忽略)。
  • /表示目录。
  • **匹配多级目录。

三.具体.gitignore文件写法示例

来看一些.gitignore文件规则写法示例,更多写法可以参考规则进行编写。

#.gitignore

main.exe
#表示忽略所有main.exe文件。

*.exe
#表示忽略所有.exe文件。

/*.exe
#表示忽略当前目录下的所有.exe文件。

/src/*.exe
#表示忽略当前目录下的src目录下所有.exe文件。

!/main.exe
#表示不忽略当前目录下main.exe文件。

/bin
#表示忽略当前.gitignore文件所在同级目录下的bin目录下所有文件。
#如果同级目录下bin不是目录而是文件,会忽略bin文件。

bin/
#表示忽略所有目录下的bin目录下所有文件,比如包括/bin目录下所有文件,/src/bin目录下所有文件。
#如果bin是文件名,不会忽略。

/src/**/bin
#表示忽略当前目录下的src目录下的任意目录下的bin目录下的所有文件,比如src/bin,/src/debug/bin,/src/release/bin,/src/src/release/bin目录下的所有文件。
#如果bin是文件,也会忽略。

四.讨论一下.gitignore文件规则的生效优先级

1.当前目录下的.gitignore文件的生效优先级最高,然后是上级目录,以此类推,优先级高的规则会覆盖优先级低的规则。

2.对于同一个.gitignore文件会按行从上往下进行生效,所以如果多行规则对同一个文件都会影响,则越往下面的一行规则优先级会越高,同样优先级高的规则会覆盖优先级低的规则。

3.注意,这里说的只是git工作区的.gitignore文件的生效优先级,git忽略文件的规则还包括命令行的内容等,而且命令行优先级更高。

五.其他

1.如果文件已经在追踪中,修改.gitignore文件不会对该文件生效。

2.也可以利用其他方式设置忽略规则,比如修改.git/info/exclude文件等等,特点也不一样,感兴趣的话也可以研究一下。

欢迎讨论,欢迎指正,欢迎转载。

你可能感兴趣的:(开发工具,git)