配置ignore文件
在实际使用git的过程中,与遇到项目中有些文件不应该加入版本库,比如一些IDE的配置文件,引入的jar包,office文档的以~$开头的临时文档等,就需要在在Git工作区的根目录下创建".gitignore"文件:有些win10系统无法直接新建".gitignore",则需要在git的命令行创建:
匹配规则为:
*.b # 所有以.b为后缀的文件 *是通配符
!a.b # 排除a.b,即a.b不会被忽略 !是非的意思
/test.txt # 只忽略根目录下的test.txt文件,而不包括子目录下的test.txt文件,如/mydir/test.txt就不会被忽略
/*/test.txt # 只忽略根目录下某个子目录下的test.txt文件,但/mydir1/mydir2/test.txt不会被忽略
/**/test.txt # 忽略根目录下所有test.txt,不管该文件在哪个子目录下,即只有项目中存在test.txt文件,就会被忽略
mydir/ # 忽略mydir下的所有文件
bin/: 忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
/bin: 忽略根目录下的bin文件
/*.c: 忽略 cat.c,不忽略 build/cat.c
debug/*.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
**/foo: 忽略/foo, a/foo, a/b/foo等
a/**/b: 忽略a/b, a/x/b, a/x/y/b等
!/bin/run.sh: 不忽略 bin 目录下的 run.sh 文件
*.log: 忽略所有 .log 文件
config.php: 忽略当前路径的 config.php 文件
在 .gitingore 文件中,每一行指定一个忽略规则,Git 检查忽略规则的时候有多个来源,它的优先级如下(由高到低):
- 从命令行中读取可用的忽略规则
- 当前目录定义的规则
- 父级目录定义的规则,依次递推
- $GIT_DIR/info/exclude 文件中定义的规则
- core.excludesfile中定义的全局规则
Java项目中常用的.gitignore文件
# Compiled class file
*.class
# Eclipse
.project
.classpath
.settings/
# Intellij
*.ipr
*.iml
*.iws
.idea/
# Maven
target/
# Gradle
build
.gradle
# Log file
*.log
log/
# out
**/out/
# Mac
.DS_Store
# others
*.jar
*.war
*.zip
*.tar
*.tar.gz
*.pid
*.orig
temp/