使Git提交忽略特殊文件

使用Git来进行项目管理时,会有数据库密码等配置文件。然而,这些私密文件是不需要加入版本控制的。这时候,就可以使用Git给我们提供的.gitignore文件,来排除不想加入版本控制的文件或者目录。

一般会忽略掉的文件为:

  • 操作系统自动生成的文件.DS_Store
  • 编译文件,如java生成的.class;包管理工具生成的依赖文件,如node npm生成的node_modulesphp composer生成的vender等。
  • 私密文件,如数据库配置等存放密码口令的文件

项目根目录下新建.gitignore文件,把你想要移除版本控制的文件写入,以开发PHP框架Laravel为示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
vendor/
node_modules/

# Laravel 4 specific
bootstrap/compiled.php
app/storage/

# Laravel 5 & Lumen specific
public/storage
storage/*.key
.env.*.php
.env.php
.env

最后把文件.gitignore也放入版本库,正常提交代码就可以了。

某时,你发现提交的代码,版本库中不存在。有可能是.gitignore把你的文件排除了,可以使用以下命令检测:

1
2
3
# 说明文件index.htm在.gitignore第2行被排除了
$ git check-ignore -v temp/caches/index.htm
.gitignore:2:/temp temp/caches/index.htm

你可以强制把文件添加至版本库:

1
$ git add -f temp/caches/index.htm

至于哪些文件是需要排除的,可以根据你所使用的系统、语言、框架来在 github/gitignore 中来查找。

0%