当前位置: 首页 > backend >正文

Git_.gitignore文件简介及使用

.gitignore 这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。实际项目中,很多文件都是不需要版本管理的,比如Python的.pyc文件,Git会根据这个文件里配置的这些规则来判断是否将文件添加到版本控制中。

注意,直接新建文件后,重命名为.gitignore是行不通的,windows不让,必须通过另存为的方式设置为.gitignore文件

常用的规则:

1)/mtk/ 过滤整个文件夹

2)*.zip 过滤所有.zip文件

3)/mtk/do.c 过滤某个具体文件

还可以通过 ! 指定要将哪些文件添加到版本管理中

1)!*.zip

2)!/mtk/one.txt

一个场景:假如我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理,那么我们就需要使用:

1)/mtk/

2)!/mtk/one.txt

规则配置语法:

以斜杠“/”开头表示目录;

以星号“*”通配多个字符;

以问号“?”通配单个字符

以方括号“[]”包含单个字符的匹配列表;

以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的

2)示例说明

fd1/*

说明:忽略目录 fd1 下的全部内容;注意,不管是fd1在哪;

/fd1/*

说明:忽略根目录下的 /fd1/ 目录的全部内容;

/*

!.gitignore

!/fw/bin/

!/fw/sf/

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

monitor/__pycache__/*.pyc

说明:忽略文件 monitor/__pycache__/目录下的.pyc文件

注意:

.gitignore只能忽略那些原来没有被track的文件(也就是那些从来没有被 Git 记录过的文件--自添加以后,从未被 add 及 commit 过的文件),如果某些文件已经被纳入了版本管理中,默认情况下,.gitignore对这些文件是不起作用的。

解决方法:先把本地缓存删除(改变成未track状态),然后再提交:

1、git rm -r --cached .

2、git add .

3、git commit -m 'comment'

注意:

进入到目标目录

实例:

E:\mygit\others>cd E:\mygit\others\monitor

E:\mygit\others\monitor>git rm -r --cached .

rm 'monitor/.idea/.name'

rm 'monitor/.idea/encodings.xml'

rm 'monitor/.idea/misc.xml'

rm 'monitor/.idea/modules.xml'

rm 'monitor/.idea/monitor.iml'

rm 'monitor/.idea/oneKeyUPDownload.iml'

……

E:\mygit\others\monitor>git add .

E:\mygit\others\monitor>git commit -m 'updategitignore'

[master 8d4db51] 'updategitignore'

30 files changed, 55393 insertions(+), 56636 deletions(-)

create mode 100644 monitor/.gitignore

delete mode 100644 monitor/.idea/.name

delete mode 100644 monitor/.idea/encodings.xml

……

 

http://www.xdnf.cn/news/3916.html

相关文章:

  • C与指针——输入输出
  • 什么是constexpr?
  • 解决:前后端跨域请求
  • 【Redis】Java操作Redis之SpringDataRedis
  • 洛谷 P1495:【模板】中国剩余定理(CRT)/ 曹冲养猪
  • 数字化转型-4A架构之业务架构
  • 深度优先搜索(DFS)与广度优先搜索(BFS):图与树遍历的两大利器
  • 74HC123的电路应用场景
  • 一键获取当前项目的所有文件结构并保存到文本文件
  • 【数据结构与算法】常见排序算法详解(C++实现)
  • Java大师成长计划之第12天:性能调优与GC原理
  • word页眉去掉线
  • LLama-v2 权重下载
  • Linux 进程基础(二):操作系统
  • TensorFlow深度学习实战——基于循环神经网络的词性标注模型
  • 接口自动化测试项目框架详解
  • USB Type-C是不是全方位优于其他USB接口?
  • 在有限的内存中计算超限数据的重复值
  • c++ 之 cout
  • 【形式化验证】动态逻辑(DL)的定义解释与示例
  • Docker 渡渡鸟镜像同步站 使用教程
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】2.5 事务与锁机制(ACID特性/事务控制语句)
  • 强化学习机器人模拟器——QAgent:一个支持多种强化学习算法的 Python 实现
  • cuDNN 9.9.0 便捷安装-Windows
  • 67. Java 嵌套类 - 详解内部类
  • Rust与C/C++互操作实战指南
  • 大型网站架构演化过程:从单体到分布式服务的全景解析
  • RR(Repeatable Read)级别如何防止幻读
  • 31.软件时序控制方式抗干扰
  • maven坐标导入jar包时剔除不需要的内容