博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GIT过滤
阅读量:7216 次
发布时间:2019-06-29

本文共 3160 字,大约阅读时间需要 10 分钟。

创建 .gitignore 随意设置想跟踪哪些文件 和不跟踪哪些文件. 

1.在项目根目录下建立 .gitignore 文件

2.   .gitignore文件过滤有两种模式,开放模式和保守模式

2.1开放模式负责设置过滤哪些文件和文件夹

eg:

过滤文件夹设置:

/mtk/

过滤文件设置

指定过滤某种类型的文件:

*.zip*.rar*.via*.tmp*.err

指定过滤某个文件:

/mtk/do.c/mtk/if.h

2.2 b保守模式负责设置哪些文件不被过滤,也就是哪些文件要被跟踪。

跟踪某个文件夹

!/plutommi/mmi

跟踪某类文件

!*.c!*.h

跟踪某个指定文件

!/plutommi/mmi/mmi_features.h

3.配置.gitignore 的简易原则

采用共享模式与保守模式结合配置的办法。eg:一个文件夹下有很多文件夹和文件,而我只想跟踪其中的一个文件,这样设置就可以满足这种情况,先用共 享模式把整个目录 都设置为不跟踪,然后再用保守模式把这个文件夹中想要跟踪的文件设置为被跟踪,配置很简单,就可以跟踪想要跟踪的文件。

 

4.我做mtk项目用到的 .gitignore 文件的具体配置如下:

#######开放模式############################    folder   ################/_souceInsight_//build//MoDIS//Doc//mtk_lib//scripts//header_temp//tools/AudioResGen//tools/GLBOptionSwtichRef//tools/GMSL//tools/MinGW//tools/MSYS//tools/NewMMIResourceTool//tools/NVRAMStatistic//tst//verno//plutommi/tool//plutommi/Customer/ResGenerator//plutommi/Customer/CustResource//plutommi/Customer/LcdResource//plutommi/Customer/Images//plutommi/mmi/Framework/EventHandling/EventsInc/mmi_menu_handlers.h/vendor/font/MTK/official/project/plutommi/content/inc//vendor/font/MTK/official/project/plutommi/content/src/################  fixed file ################.gitignore*.exe *.txt *.def *.dsp *.lib *.doc *.dll *.lnt *.pm *.xls *.dbg *.DBG *.o *.plg *.keep ############### # temp file # ############### ~* *.log *.cmm *.men *.ini *.fig *.cmp *.tmp ############### # script # ############### *.bat

 

#########保守模式############!/plutommi/Customer/CustResource/PLUTO_MMI/!/plutommi/Customer/LcdResource/MainLcd128X160/!/plutommi/Customer/Images/PLUTO128X160/image.zip!/vendor/font/MTK/official/project/plutommi/content/inc/MainLcd128X160/!/vendor/font/MTK/official/project/plutommi/content/src/MainLcd128X160/ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++    在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改 .gitignore 文件的方法。这个文件每一行保存了一个匹配的规则例如:

# 此为注释 – 将被 Git 忽略

*.a # 忽略所有 .a 结尾的文件 !lib.a # 但 lib.a 除外 /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO build/ # 忽略 build/ 目录下的所有文件

            doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

 

    这样设置了以后 所有的 .pyc 文件都不会添加到版本库中去。

 

    另外 git 提供了一个全局的 .gitignore,你可以在你的用户目录下创建 ~/.gitignoreglobal 文件,以同样的规则来划定哪些文件是不需要版本控制的。

 

需要执行 git config --global core.excludesfile ~/.gitignoreglobal来使得它生效。

 

其他的一些过滤条件

* ?:代表任意的一个字符 * *:代表任意数目的字符 * {!ab}:必须不是此类型 * {ab,bb,cx}:代表ab,bb,cx中任一类型即可 * [abc]:代表a,b,c中任一字符即可

    * [ ^abc]:代表必须不是a,b,c中任一字符

 

    由于git不会加入空目录,所以下面做法会导致tmp不会存在 tmp/*             //忽略tmp文件夹所有文件

改下方法,在tmp下也加一个.gitignore,内容为 * !.gitignore 还有一种情况,就是已经commit了,再加入gitignore是无效的,所以需要删除下缓存 git rm -r --cached ignore_file

 

注意: .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

正确的做法是在每个clone下来的仓库中手动设置不要检查特定文件的更改情况。 git update-index --assume-unchanged PATH 在PATH处输入要忽略的文件。 另外 git 还提供了另一种 exclude 的方式来做同样的事情,不同的是 .gitignore 这个文件本身会提交到版本库中去。用来保存的是公共的需要排除的文件。而 .git/info/exclude 这里设置的则是你自己本地需要排除的文件。 他不会影响到其他人。也不会提交到版本库中去。 .gitignore 还有个有意思的小功能, 一个空的 .gitignore 文件 可以当作是一个 placeholder 。当你需要为项目创建一个空的 log 目录时, 这就变的很有用。 你可以创建一个 log 目录 在里面放置一个空的 .gitignore 文件。这样当你 clone 这个 repo 的时候 git 会自动的创建好一个空的 log 目录了。

转载于:https://www.cnblogs.com/zhangym/p/5660738.html

你可能感兴趣的文章
(1)用VisualSvn Server,Tortoise Svn,AnkhSvn搭建Svn版本控制
查看>>
Mysql索引
查看>>
格式化输出
查看>>
hdu 3804 Query on a tree (树链剖分+线段树)
查看>>
定位、指南针、地理编码
查看>>
Kafka 简介
查看>>
MySQL 用户连接与用户线程
查看>>
RabbitMq、ActiveMq、Kafka和Redis做Mq对比
查看>>
C# 图片处理(压缩、剪裁,转换,优化)
查看>>
Linux bridge-utils tunctl 使用
查看>>
Leetcode Pascal's Triangle II
查看>>
运行shell脚本报错 '\357\273\277': command not found 解决的方法
查看>>
android studio 0.8.1使用和遇到问题解决
查看>>
云服务器ECS选购集锦之六区域选择帮助
查看>>
云虚机选购指南之二云虚拟主机试用帮助文档
查看>>
女友眼中的IT男
查看>>
Excel连接
查看>>
java基础-多线程学习
查看>>
WPF打印原理,自定义打印
查看>>
HTML5 5
查看>>