如何编写.gitignore文件
为什么要有.gitignore文件
项目中经常会生成一些Git系统不需要追踪(track)的文件。典型的是在编译生成过程中 产生的文件或是编程器生成的临时备份文件。当然,你不追踪(track)这些文件,可以 平时不用"git add"去把它们加到索引中。 但是这样会很快变成一件烦人的事,你发现项目中到处有未追踪(untracked)的文件; 这样也使"git add ." 和"git commit -a" 变得实际上没有用处,同时"git status"命令的输出也会有它们。你可以在你的顶层工作目录中添加一个叫".gitignore"的文件,来告诉Git系统要忽略 掉哪些文件。
忽略文件原则
- 忽略操作系统自动生成的文件,比如缩略图等;
 - 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
 - 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
 
语法规范(熟悉正则很容易理解)
- 空行或是以#开头的行即注释行将被忽略;
 - 以斜杠 “/” 结尾表示目录;
 - 以星号 “*” 通配多个字符;
 - 以问号 “?” 通配单个字符
 - 以方括号 “[]” 包含单个字符的匹配列表;
 - 以叹号 “!” 表示不忽略(跟踪)匹配到的文件或目录;
 - 可以在前面添加斜杠 “/” 来避免递归,下面的例子中可以很明白的看出来与下一条的区别。
 
配置文件示例
# 忽略 .a 文件
*.a
# 但否定忽略 lib.a, 尽管已经在前面忽略了 .a 文件
!lib.a
# 仅在当前目录下忽略 TODO 文件, 但不包括子目录下的 subdir/TODO
/TODO
# 忽略 build/ 文件夹下的所有文件
build/
# 忽略 doc/notes.txt, 不包括 doc/server/arch.txt
doc/*.txt
# 忽略所有的 .pdf 文件 在 doc/ directory 下的
doc/**/*.pdf
配置文件模板
Github 上为开发者提供了各种环境以及各种编程语言的 gitignore 文件配置模板:https://github.com/github/gitignore
本人使用的是python项目的gitgnore文件 url:https://github.com/github/gitignore/blob/master/Python.gitignore
.gitignore分为全局配置和局部配置,这个很容易理解全局配置是指修改当前.gitignore文件本机的git中的全部项目都起作用,局部的配置是指每个项目下的.gitignore文件只对向前所在的项目起作用。
局部的配置只需要在项目目录中创建 .gitignore 文件即可。
全局的配置设置方法为:
$git config –global core.excludesfile ~/.gitignore
这样,修改~/.gitignore这个文件将作用于所有 git 项目,并且作用于项目实例中的所有被跟踪的目录。
# Windows: (使用windows用户,过滤存放图片文件夹下生成的缩略图)
Thumbs.db
ehthumbs.db
Desktop.ini # Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
target
.idea
.classpath
.project
.settings
*.iml
.gitignore
总结
- 忽略某些文件时,需要编写.gitignore。
 - .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!
 - 从版本库中删除
$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt" 
参考链接:http://www.chengxusheji.com/archives/121.html
http://kuanghy.github.io/2016/05/17/gitignore
http://outofmemory.cn/code-snippet/37452/git-ignorefiles-example
如何编写.gitignore文件的更多相关文章
- 编写.gitignore文件的几个小技巧
		
记录几个编写.gitignore文件的小技巧,可能你早就知道了,但我是google了一番才找到写法. 忽略所有名称为bin的文件夹 bin/ 只忽略第一级目录中,名称为bin的文件夹 /bin/ 忽略 ...
 - 如何编写gitignore文件
		
原文链接:https://www.cnblogs.com/jingtyu/p/6831772.html 为什么要有.gitignore文件 项目中经常会生成一些Git系统不需要追踪(track)的文件 ...
 - 编写.gitignore 文件
		
讲代码 放入 Git 仓库中进行版本控制管理时,有些文件是不需要放入Git 中,比如 Maven 生成的target 目录,IDEA/Eclipse的工程文件, 在项目的根目录 下 添加一个名为.gi ...
 - .gitignore文件如何编写?
		
.gitignore文件即 项目中不需要被追踪(track)且上传到git系统的文件 <1>忽略文件的原则 a.忽略操作系统自动生成的文件,比如缩略图等 b.忽略编译生成的中间文件.可执行 ...
 - gitignore文件简单编写规则
		
一.生成.gitignore文件 1.进入项目根目录,打开终端: 2.输入 vi .gitignore 创建并打开隐藏文件.gitignore: 二 . 设置要忽略上传的文件或文件夹 1.过滤整个文件 ...
 - .gitignore文件编写规则
		
1.gitignore说明 在使用git的过程中,一般我们总会有些文件无需纳入git的管理,也不希望它们总出现在未跟踪文件列表,这些文件通常是日志文件.临时文件.编译产生的中间文件.工具自动生成的文件 ...
 - .gitignore文件不起作用
		
当我们用git时常常会习惯把我们不想上传到远程代码库中的一些本地文件(夹)放在一个叫做.gitignore的文件中,例如常见的本地build文件夹,一些IDE如Intellig,Eclipse的项目管 ...
 - Git与GitHub学习笔记(三).gitignore文件忽略和删除本地以及远程文件
		
一.Git提供了文件忽略功能.当对工作区某个目录或者某些文件设置了忽略后,git将不会对它们进行追踪 HELP:如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件 问题:最近 ...
 - git中.gitignore 文件
		
现在项目的根目录放了 .gitignore 文件,并且git远程仓库的项目根目录已经有了 logs文件夹. 由于每次本地运行项目,都会生成新的log文件,但是我并不想提交logs文件夹里面的内容,所以 ...
 
随机推荐
- Linux04——手动修改IP和关闭防火墙服务
			
两种方法手动修改IP: 命令行方式 2. 图形化界面修改 点击应用即可(地址自行设置) 关闭防火墙服务,否则连不上Linux
 - sshpass远程登陆
			
1,ssh ssh 端口为默认22的时候: sshpass -p 888888 scp -o StrictHostKeyChecking=no /root/images.zip root@21.1.9 ...
 - eclipse修改快捷键
			
eclipse修改快捷键 ctrl + shift + l查看快捷键 window -> preferences -> 搜索keys 鼠标点击以下五个表头,可以按照内容搜索 示例,选中Bi ...
 - RedHat7.0 网络源的配置
			
RedHat7.0 yum源的配置 写这篇随笔的目的 为了记录自己的操作,能够为以后的再次配置提供参考 因为网上的教程都有些年代了,为了方便其他同学方便配置 提高下自己的写作水平 参考资料 RedHa ...
 - [C/C++] _tprintf() 输出不了汉字
			
在前面加一个 setlocale(LC_ALL, ""); //必须得有这行 否则不能输出中文 注意得加locale头文件 #include<stdio.h> #inc ...
 - c语言实现面向对象编程
			
1.通用校验器接口(validator.h) #ifndef VALIDATOR_H_INCLUDED #define VALIDATOR_H_INCLUDED #include<stdbool ...
 - python 解析json格式
			
对于网页爬取结果为json格式的,可以直接使用python的json库解析,获取相应字段的值,比用正则匹配更简单规范. import json…… resp=requests.post(url,hea ...
 - [题解] 2019牛客暑期多校第三场H题 Magic Line
			
题目链接:https://ac.nowcoder.com/acm/contest/883/H 题意:二维平面上有n个不同的点,构造一条直线把平面分成两个点数相同的部分. 题解:对这n个点以x为第一关键 ...
 - 「NOIP2016」蚯蚓
			
传送门 Luogu 解题思路 很容易想到用一个堆去维护,但是复杂度是 \(O((n+m)\log(n+m))\) 的,显然过不了 \(7e6\). 其实这题有一个性质: 先被切开的蚯蚓,得到的两条新蚯 ...
 - JavaScript 对象数字键特性实现桶排序
			
桶排序: 对象中,数字键按照升序排列.依据这一特性将数组的值作为对象的键和值存入对象实现排序 因为对象的键不重复,因此不支持数组有重复元素存在的排序场景,也可以看作是实现数组的去重排序 functio ...