忽略文件

.gitignore忽略文件用于告诉Git哪些文件或目录不应被纳入版本控制,它的主要作用是避免将不必要的文件(例如临时文件、编译文件、日志文件等)提交到Git仓库中。

为什么需要.gitignore

以Java开发为例,如果我们使用Eclipse集成开发环境,它会自动创建.settingstarget.classpath.factorypath.project文件,这些文件是本地IDE需要的配置文件,它们不应该提交到版本控制系统中,因为其它编写该项目的人其IDE设置可能与我们不同甚至完全不使用集成开发环境,这些文件如果被提交甚至可能引发其他人的IDE报错。一般来说,我们的项目都必有一个.gitignore文件。

编写.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就会停止跟踪该文件了。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap