.gitignore

介绍

有一些文件与程序代码无关,如像 eclipse/ IntelliJ IDEA 等 IDE 工具留下来的 .settings、.classpath、.project、.iml、.idea 等各种配置文件,还有 一些编译和运行过程中产生的中间文件等。
我们不能把这些本地化的无用的配置文件提交到远程仓库上面去,这样会造成别人每次都有更新的要求,也会污染别人的开发环境。
另外还有一些私密的文件,比如签名文件,也是不适合提交的。
我们可以编写一个.gitignore文件,把不需要跟踪的文件和文件夹写上,git就不会去跟踪这些文件了,另外:.gitignore文件与.git文件夹在同级目录下。

规则

使用规则

.gitignore 是 Git 的忽略配置文件,放在项目根目录下,这样在提交代码时就不会跟踪在.gitignore 配置文件列举的文件。
特殊情况下,如果你想强制提交一个在忽略列表里面的文件,也可以使用以下命令:
git add -f 文件名
如果使用了-f依然不能添加,可能是.gitignore写得有问题,可以用git check-ignore -v 文件名来检查,

$ git check-ignore -v App.class
.gitignore:3:*.class App.class

于是git告诉我们.gitignore的第3行规则忽略了该文件,于是我们就可以知道应该修订哪个规则。
.gitignore文件不能直接在文件资源管理器中创建,必须使用git命令,
右键点击根目录的文件夹,选择Git Bash Here,
然后输入touch .gitignore,就可以在创建.gitignore文件了

规则优先级

.gitignore文件中,每一行指定一个忽略规则,Git检查忽略规则的时候有多个来源,它的优先级如下(由高到低)

  1. 从命令行中读取可用的忽略规则
  2. 当前目录定义的规则
  3. 父级目录定义的规则,依次递推
  4. $GIT_DIR/info/exclude 文件中定义的规则
  5. core.excludesfile中定义的全局规则

编辑规则

空格不匹配任意文件,可作为分隔符,可用反斜杠转义
所有空行或者以开头的行都会被Git忽略。
可以直接在其中输入指定的文件名,也可以使用标准的glob模式匹配。
匹配模式可以以(/)开头防止递归。
匹配模式可以以(/)结尾指定目录。
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反
glob模式

  • *:匹配零个或多个任意字符
  • [abc]:只匹配括号内中的任意一个字符
  • [0-9]:代表范围,匹配0-9之间的任何字符?
  • ?:匹配任意一个字符
  • :匹配任意的中间目录,例如a//z可以匹配:a/z,a/b/z,a/b/c/z等

模板

模板网上有很多,比如我从(http://www.javastack.cn/article/2018/git-common-gitignore-file/)找了一个比较全的

## .gitignore for Grails 1.2 and 1.3

# .gitignore for maven 
target/
*.releaseBackup

# web application files
#/web-app/WEB-INF
 
# IDE support files
/.classpath
/.launch
/.project
/.settings
/*.launch
/*.tmproj
/ivy*
/eclipse
 
# default HSQL database files for production mode
/prodDb.*
 
# general HSQL database files
*Db.properties
*Db.script
 
# logs
/stacktrace.log
/test/reports
/logs
*.log
*.log.*
 
# project release file
/*.war
 
# plugin release file
/*.zip
/*.zip.sha1
 
# older plugin install locations
/plugins
/web-app/plugins
/web-app/WEB-INF/classes
 
# "temporary" build files
target/
out/
build/
 
# other
*.iws
 
#.gitignore for java
*.class
 
# Package Files #
*.jar
*.war
*.ear
 
## .gitignore for eclipse
 
*.pydevproject
.project
.metadata
bin/**
tmp/**
tmp/**/*
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath
 
# External tool builders
.externalToolBuilders/
 
# Locally stored "Eclipse launch configurations"
*.launch
 
# CDT-specific
.cproject
 
# PDT-specific
.buildpath
 
## .gitignore for intellij
 
*.iml
*.ipr
*.iws
.idea/
 
## .gitignore for linux
.*
!.gitignore
*~
 
## .gitignore for windows
 
# Windows image file caches
Thumbs.db
ehthumbs.db
 
# Folder config file
Desktop.ini
 
# Recycle Bin used on file shares
$RECYCLE.BIN/
 
## .gitignore for mac os x
 
.DS_Store
.AppleDouble
.LSOverride
Icon
 
 
# Thumbnails
._*
 
# Files that might appear on external disk
.Spotlight-V100
.Trashes

## hack for graddle wrapper
!wrapper/*.jar
!**/wrapper/*.jar
原文地址:https://www.cnblogs.com/cyx-b/p/13438447.html