git 入门教程之忽略文件

忽略文件

"并非全部的牛奶都叫特仑苏",在版本控制系统中也有类似的表达,那就是"并非全部的文件都须要提交".git

有的是由于不必提交,好比日志文件,系统缓存文件等,有的是由于不能提交,好比我的隐私文件,付费文档等.github

正常来讲,这些文件都是不该该被提交到版本库,假若一不留神提交到版本库,要么泄露机密信息,要是形成经济损失,要么对团队其余人工做形成不便.缓存

有鉴于此,咱们应该寻求一种机制来规避事故的发生,在 git 版本控制系统中通常有三种不一样的解决方案.ide

最经常使用也是最简单的当属 .gitignore 文件,不过先不要着急,咱们先了解一下忽略原则和配置规则.工具

忽略文件的基本原则

  • 忽略操做系统自动生成的文件,保持不一样操做系统的纯粹性和整洁度.
  • 忽略工具软件自动生成的文件,避免因个性化配置而产生的工做障碍.
  • 忽略我的隐私配置文件,除非你愿意承担公开隐私所带来的潜在风险.
目标: 只提交必要文件,忽略无用文件,尽量考虑多种状况,不给他人制造麻烦.

忽略文件的配置规则

一行记录表明一条规则,配置规则仅针对还没有被跟踪的文件清单.操作系统

# 忽略 `*.a` 文件
*.a
# 忽略 `*.A` 文件,但 `somefile.A` 除外.
*.A
!somefile.A

# 忽略 `*.b` 和 `*.B` 文件
*.[bB]
# 忽略 `*.c` 和 `*.C` 文件,但 `somefile.C` 除外.
*.[cC]
!somefile.C

# 只忽略 `somepath/` 目录(包括该目录下全部文件),但不忽略 `somepath` 文件
somepath/
# 只忽略 `somepath/` 一级子目录下 `*.txt`,但不忽略 `somepath/sub/*.txt` 文件
somepath/*.txt

# 忽略 `somepath` 文件和 `somepath` 目录
somepath
# 只忽略 `somepath` 文件,但不忽略 `somepath/` 目录
somepath
!somepath/

# 只忽略当前目录下的 `somepath` 文件和目录,但不忽略子目录的 `somepath`
/somepath
说明: # 开头表示注释, ! 紧跟某规则以后表示增长例外状况

在线示例和帮助文档

提供两个不错的在线示例,能够参考下在什么场景应该忽略哪些文件以及如何编写忽略规则.版本控制

运行 git help ignore 命令查看帮助文档

三种设置方式

git 设置忽略文件有三种方式,以下:日志

  • 全局配置文件(~/.gitignore),执行 git config --global core.excludesfile ~/.gitignore 命令后适用于全部的版本库.
  • 远程配置文件($PWD/.gitignore),编辑 .gitignore 文件后适用于远程和本地版本库.
  • 本地配置文件($PWD/.git/info/exlude),编辑 $PWD/.git/info/exlude 文件后适用于本地版本库.

最经常使用方式

三种设置方式中,第二种最为常见,另外两种大体同样,重点在于配置文件如何编写.code

建立 .gitignore 文件

参考在线示例以及基本语法编写自定义忽略规则文档

# General
.DS_Store
.AppleDouble
.LSOverride

# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db

提交 .gitignore 文件

忽略文件规则配置完毕后,须要将该文件提交到版本库,这样在其余电脑上也能应用相同的忽略规则.

# 添加 `.gitignore` 
git add .gitignore

# 提交 `.gitignore` 
git commit -m "add .gitignore"

# 上传 `.gitignore`
git push origin master

验证忽略效果

新建 .gitignore 文件中已忽略的文件,运行 git status 命令,若是提示 working directory clean,那么说明忽略文件的配置已经生效,若是工做区不干净,很遗憾,忽略文件配置可能并未生效,须要检查下哪里配置错了.

运行 git check-ignore 命令检查是哪一个配置规则写错了,从而咱们可以更正相应的配置规则.

相关文章
相关标签/搜索