Git 的 .gitignore

来源:互联网 发布:2016金林钣金展开软件 编辑:程序博客网 时间:2024/05/20 17:24

前言

在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了
.gitignore配置文件用于配置不需要加入版本管理的文件,配置好该文件可以为我们的版本管理带来很大的便利

忽略文件的原则是:

 1. 忽略操作系统自动生成的文件,比如缩略图等 2. 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件  3. 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

配置语法: 

 以斜杠“/”开头表示目录;  以星号“*”通配多个字符;  以问号“?”通配单个字符  以方括号“[]”包含单个字符的匹配列表;  以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

  此外,git 对于.ignore配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;

示例:

  (1)规则:fd1/*
     说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;

  (2)规则:/fd1/*
     说明:忽略根目录下的/fd1/目录的全部内容;

  (3)规则:

/*!.gitignore!/fw/bin/!/fw/sf/

说明:忽略全部内容,但是不忽略.gitignore 文件、根目录下的 /fw/bin//fw/sf/目录;

创建

  • 方法一(最直接):
    在资源管理创建文件时,文件命名“.gitignore.”,注意结尾有个.号,回车确认时系统会自动存成.gitignore
  • 方法二:
    打开文本编辑器,保存时文件名输入“.gitignore”,保存类型选“所有文件”、
  • 方法三:
    进入cmd命令行,执行echo > .gitignore输入空内容并创建文件,或执行rename somefile .gitignore、copy somefile .gitignore 从已有文件复制、重命名。

可能遇到问题

在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件)。这个文件每一行保存了一个匹配的规则例如:

# 此为注释 – 将被 Git 忽略*.cs       # 忽略所有 .cs 结尾的文件!ABC.cs    # 但 ABC.cs 除外/BLL       # 仅仅忽略项目根目录下的 BLL 文件,不包括 subdir/BLLbuild/     # 忽略 build/ 目录下的所有文件doc/*.txt  # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

规则很简单,不做过多解释,但是有时候在项目开发过程中,突然心血来潮想把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

git rm -r --cached .git add .git commit -m 'update .gitignore'
原创粉丝点击