.gitignore文件用法及如何配置
.gitignore文件用法如何配置(笔记)
.gitignore文件是在git提交的时候用来屏蔽某些你不想提交上去的文件。
项目开发过程中,有时候不想把一些文件(如中间文件/编译文件等)提交到git上。这个时候就由.gitignore文件来筛选出不想提交的文件。所筛选的文件/夹将不会被追踪(tracked),push的时候也不会上传到git上。
**以下用法配置是单片机C开发项目中的
创建
我们需要在提交Git之前,需要自己创建一个.gitignore文件,由于Windows下创建文件必须键入文件名,而要创建的.gitignore文件是没有文件名的,所以我们可以使用move命令来实现,打开Git Bash ,使用mv gitignore.txt .gitignore
,然后用编辑器编辑这个文件。
语法规范
- #:开头的行表示注释行
- *:用来匹配零个或多个字符
*.a
表示忽略.a文件;
*.[oa]
表示忽略所有以.a和.o结尾的文件,*~
忽略所有以~结尾的文件;
[]
用来匹配括号内的任一字符,如[abc],也可以在括号内加连接符,如[0-9]匹配0至9的数;
?
用来匹配单个字符; - !:用来否定忽略
比如前面用了*.txt
,然后使用!*a.txt
,则这个a.txt不会被忽略 - /:
正斜杠在前:匹配项目跟目录;如/bin
表示忽略根目录下的bin文件,/bsp
表示忽略根目录下的bsp文件夹,但不忽略子目录里的user/bsp文件夹;
正斜杠在后:匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件;如bsp/
表示忽略bsp文件夹里的所有文件; - **:匹配多级目录,可在开始,中间,结束;
忽略优先级
在.gitignore文件中,每一行指定一个忽略规则,Git 检查忽略规则的时候有多个来源,它的优先级如下(由高到低):
- 从命令行中读取可用的忽略规则
- 当前目录定义的规则
- 父级目录定义的规则,依次递推
- $GIT_DIR/info/exclude 文件中定义的规则
- core.excludesfile中定义的全局规则
常见例子
1、忽略.bin文件
#忽略所有的.bin文件
*.bin
2、否定忽略 link.bin
#不忽略目录下的link.bin
!link.bin
#不忽略obj目录下的link.bin
!/obj/link.bin
3、忽略某目录.txt, 不包括子目录.txt
#忽略doc/notes.txt, 不包括doc/server/arch.txt
doc/*.txt
4、忽略某目录内所有的.pdf 文件
#忽略所有的 .pdf 文件 在 doc/ directory 下的
doc/**/*.pdf
5、忽略当前目录.c,不忽略子目录.c
#忽略 cat.c,不忽略 build/cat.c
/*.c
6、忽略当前路径下的Proj文件夹,该文件夹下的所有内容都会被忽略
#忽略当前路径下的Proj文件夹,该文件夹下的所有内容都会被忽略
Proj/
7、忽略Proj文件夹子目录文件夹
#忽略Proj文件夹子目录Obj文件夹里的所有文件
Proj/Obj/
8、忽略根目录下的某文件
#忽略根目录下的bin文件
/bin:
9、忽略/foo, a/foo, a/b/foo等
#忽略/foo, a/foo, a/b/foo等
**/foo:
10、忽略a/b, a/x/b, a/x/y/b等
#忽略a/b, a/x/b, a/x/y/b等
a/**/b:
11、忽略当前路径的某文件
#忽略当前路径的 config.php 文件
config.php:
.gitignore规则不生效
一、.gitignore只能忽略那些原来没有被追踪(tracked)的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
1. git rm -r --cached .
2. git add .
3. git commit -m 'update .gitignore'
二、你想添加一个文件到Git,但发现添加不了,原因是这个文件被.gitignore忽略了:
$ git add App.class
The following paths are ignored by one of your .gitignore files:
App.class
Use -f if you really want to add them.
如果你确实想添加该文件,可以用-f强制添加到Git:
$ git add -f App.class
三、或者你发现,可能是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查:
$ git check-ignore -v App.class
.gitignore:3:*.class App.class
Git会告诉我们,.gitignore的第3行规则忽略了该文件,于是我们就可以知道应该修订哪个规则。
忽略已提交文件中的变化
临时忽略变更
在开发阶段,有时候需要临时忽略本地仓库中已提交的文件的变更。例如,你的配置文件与本机的工作环境或者项目配置有关,那么这个操作就非常有用:
git update-index --skip-worktree <file>
当然也可以恢复文件的追踪:
git update-index --no-skip-worktree <file>
也可以通过以下方式进行。这主要是为了防止文件被开发者修改。
关闭变更追踪:
git update-index --assume-unchanged <file>
恢复变更追踪:
git update-index --no-assume-unchanged <file>
永久忽略文件变更
如果一个文件已经被 Git 跟踪,那么再将这个文件添加到 .gitignore 中并不会忽略文件变更。你还需要从Git 暂存区(index)中移除这个文件的信息,步骤如下:
- 在.gitignore中添加这个文件
- 从暂存区移除文件信息:
git rm --cached <file>
- 提交删除文件和更新的.gitignore到您的仓库
注:以上步骤不会从系统中删除文件,只是告诉Git以后忽略该文件的变更
以上是最近在用.gitignore文件时查阅的一些资料,感谢以下大神的帖子:
https://blog.csdn.net/weixin_45318845/article/details/120740012
https://blog.csdn.net/wnvalentin/article/details/105448739
如有描述有误的地方欢迎大家指出,感谢!
.gitignore文件用法及如何配置相关推荐
- Vue 单文件组件||Vue 单文件组件的基本用法||webpack 中配置 vue 组件的加载器|| 在 webpack 项目中使用 vue
Vue 单文件组件 传统组件的问题和解决方案 1. 问题 1. 全局定义的组件必须保证组件的名称不重复 2. 字符串模板缺乏语法高亮,在 HTML 有多行的时候,需要用到丑陋的 \ 3. 不支持 CS ...
- Android Studio SVN配置忽略文件 1.用Android Studio创建一个项目,会在根目录和Module目录下自动生成.gitignore文件,貌似是Git的配置文件,
Android Studio SVN配置忽略文件 1.用Android Studio创建一个项目,会在根目录和Module目录下自动生成.gitignore文件,貌似是Git的配置文件,和SVN没有关 ...
- git中配置.gitignore文件
.gitignore文件是git中常见的配置文件,用以管理在git文件管理中需要被忽略的文件,使git管理文件更加方便和自由. 文件中的配置如下,根据文件情况具体添加 .idea/ /idea/ .v ...
- 文件夹去掉git版本控制_git 从版本控制中删除文件及.gitignore的用法
刚开始用git的时候,喜欢用git add *把所有文件都加入到版本管理中. 后来发现,因为我在virtualenv下面创建的内容,在跑测试的时候,会产生__pycache__文件夹,里面的很多东西都 ...
- .gitignore文件 —— git忽略文件
.gitignore文件用来忽略被指定的文件或文件夹的改动,被记录在.gitignore文件里的文件或文件夹,是不会被git跟踪到的,换句话说,被忽略的文件是不会被放入到远程仓库里的. 如果文件已 ...
- gitignore 文件生效办法
.gitignore 可以添加一些不加入git版本控制的文件 比如一些测试文件.因人而异的配置信息等等 .gitignore 文件展示如下 /.idea/target//.classpath /.pr ...
- 鸟哥的Linux私房菜(基础篇)- 第六章、Linux 的文件权限与目录配置
第六章.Linux的文件权限与目录配置 最近更新日期:2009/08/18 Linux最优秀的地方之一,就在于他的多人多任务环境.而为了让各个使用者具有较保密的文件数据,因此文件的权限管理就变的很重要 ...
- $git学习总结系列(4)——gitignore文件
有时候工作区中会有我们创建的一些密码配置文件,或者自动生成的一些临时文件,比如python代码编译产生的.pyc文件和java代码编译产生的.class文件等,我们在提交代码的时候没有必要把这些文件也 ...
- git 使用详解(3)—— 最基本命令 + .gitignore 文件
Git 基础 本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置:开始或停止跟踪某些文件:暂存或提交某 ...
最新文章
- OpenCASCADE:可视化简介
- 我的工作日报 - 2020-9-16 星期三
- 在新建FileInputStream时使用当前相对路径或者绝对路径作为参数的问题
- 登录之回车登录和记住密码
- python取出满足条件的行_numpy ndarray 取出满足特定条件的某些行实例
- linux新建两个工作组,linux添加工作组
- Hexo框架下用NexT(v7.0+)主题美化博客
- Jmeter的基本使用
- 用计算机怎样搜wifi网,笔记本电脑搜索不到无线网络(Wifi)怎么办
- Android 面试题(答案最全) 转:http://www.jobui.com/mianshiti/it/android/2682/
- js数组对象重复的数据添加标识
- vmware启动sda assuming drive cache黑屏
- 淮安万达机器人_淮安万博机器人 万达上班时间【输入网址YB7888.vip】angmi_PP视频搜索-PP视频-原PPTV聚力视频...
- 服务器硬盘热插拔检测不到,用过这么多年才知道, 原来有的设备是真的不能热插拔的!...
- xp如何开启系统打印服务器配置,XP系统设置打印机共享的方法有哪些
- Netty下的消息群发
- 福利贴:最全实时音视频开发要用到的开源工程汇总
- 游标v_cur的%notfound
- 震惊!这个链接里面竟然有
- [附源码]java毕业设计医院档案管理系统