Github .gitignore详解

来源:互联网 发布:c语言while是什么意思 编辑:程序博客网 时间:2024/06/07 22:31

引言

在使用git作版本控制时,git会默认把git控制的文件夹里面的所有文件都加入到版本控制。但是在实践中,我们经常会遇到不想某些文件或文件夹被git追踪的情况.比如logs文件、代码构建过程中产生的一些列文件,要解决这种问题,通常情况下我们需要创建一个文件格式后缀名为.gitignore的文件,来控制哪些文件不被git追踪.

.gitignore文件示例

# 此为注释 ,将被 Git 忽略# 忽略所有 .a 结尾的文件*.a# 但 lib.a 除外!lib.a# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO/TODO# 忽略 build/ 目录下的所有文件build/# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txtdoc/*.txt# 会忽略掉 doc/ 里面所有的txt文件,包括子目录下的(**/ 从 Git 1.8.2 之后开始支持 **/ 匹配模式,表示递归匹配子目录下的文件)doc/**/*.txtlocal.properties #过滤具体文件!local.properties#添加具体文件*.[oa]#忽略所有以 .o 或 .a 结尾的文件

被过滤掉的文件就不会出现在你的GitHub库中了,当然本地库中还有,只是push的时候不会上传
注意:如果你不慎在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。

gitignore文件书写规则

  1. 空白或者以#开始的文字将被忽略, 注释一行可以用 #;
  2. 可以使用通配符,例如*;
  3. 使用 / 结束可以匹配文件夹,比如 doc/ 将匹配doc文件夹;
  4. 使用’!’来声明一个非语句. 比如!lib.txt 将不会忽略lib.txt。

其实很简单,了解了基本规则之后就可以书写自己的gitignore文件了,下面这个是github提供的一些常用的gitignore规则,可以试着去理解下.
当然大招在这,github上一个开源的All in One .gitignore,总有一款适合你.

ALL in One .gitignore

# Compiled source ####################*.com*.class*.dll*.exe*.o*.so# Packages ##################### it's better to unpack these files and commit the raw source# git has its own built in compression methods*.7z*.dmg*.gz*.iso*.jar*.rar*.tar*.zip# Logs and databases #######################*.log*.sql*.sqlite# OS generated files #######################.DS_Store.DS_Store?._*.Spotlight-V100.Trashesehthumbs.dbThumbs.db

转自:http://www.cnblogs.com/langtianya/p/5748885.html

原创粉丝点击