.gitignore
忽略文件用于告诉Git哪些文件或目录不应被纳入版本控制,它的主要作用是避免将不必要的文件(例如临时文件、编译文件、日志文件等)提交到Git仓库中。
以Java开发为例,如果我们使用Eclipse集成开发环境,它会自动创建.settings
、target
、.classpath
、.factorypath
、.project
文件,这些文件是本地IDE需要的配置文件,它们不应该提交到版本控制系统中,因为其它编写该项目的人其IDE设置可能与我们不同甚至完全不使用集成开发环境,这些文件如果被提交甚至可能引发其他人的IDE报错。一般来说,我们的项目都必有一个.gitignore
文件。
.gitignore
文件的语法如下:
#
开头的行是注释!
来否定规则,即强制跟踪某个文件,即便它匹配了之前的某条忽略规则/
来表示根目录(相对.gitignore
文件所在的目录)的文件或目录*
作为通配符匹配任意字符其实我们并不需要真的掌握.gitignore
文件的语法,因为有很多现成的模板可以使用,比如GitHub上就有很多常用的.gitignore
模板,我们可以直接复制使用。
这里我们直接看一个例子。下面是一个.gitignore
文件的例子,适用于Java的SpringBoot工程,其中忽略了IntellijIDEA、Eclipse、NetBeans、VSCode、JRebel等常用Java开发工具的配置文件以及编译输出目录等。
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
### JRebel ###
rebel.xml
将这个.gitignore
文件放置在项目根目录,被排除的文件就不会被版本控制系统跟踪。
有时候你可能需要忽略已经被提交到Git仓库中的文件。在这种情况下,.gitignore
文件不会直接生效,因为Git已经在跟踪这些文件了。此时你需要先从Git的索引中移除文件(但不用真的删除它们)。
git rm --cached readme.txt
执行此命令后,Git就会停止跟踪该文件了。