GIT过滤
git 创建 .gitignore 文件 建立项目过滤规则
创建 .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 目录了。
GIT过滤的更多相关文章
- git的介绍、git的功能特性、git工作流程、git 过滤文件、git多分支管理、远程仓库、把路飞项目传到远程仓库(非空的)、ssh链接远程仓库,协同开发
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理. [1] 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码 ...
- Git过滤文件和文夹
今天是2016年10月份的最后一天,感觉时间过得真的是飞快呢,此刻天下着小雨,天气灰蒙如天每个人的心情一样.在此把这个月的项目上传到git上,就需要过滤一些项目自动生成的不必要的文件,如:bin,ob ...
- Git 过滤文件,控制上传
在Git的版本控制中,可能有些文件是不需要加入控制的,那我们在提交代码时就需要忽略这些文件,下面讲讲应该怎么给Git配置一些忽略规则. 有三种方法可以忽略掉这些文件,这三种方法都能达到目的,只不过适用 ...
- android git 过滤.idea文件时不起作用。
在Terminal里面执行git命令行 git rm -r --cached .idea 在ignored files中配置.idea/ 文件. 最后.idea变黄就可以了.
- 5. git 过滤,让某文件夹里无法提交新添加的文件
. gitignore 向此文件里添加文件路径就行了.如( web/core/ ) 此时git status将看不到添加的文件或文件夹了
- Git 指南 -- 什么应该被纳入管理?
Git 指南 -- 什么应该被纳入管理? 如果还不了解Git是什么,可以先阅读这篇博文:http://www.cnblogs.com/schaepher/p/5561193.html 是作品,而不是产 ...
- Git详解之七:自定义Git
自定义 Git 到目前为止,我阐述了 Git 基本的运作机制和使用方式,介绍了 Git 提供的许多工具来帮助你简单且有效地使用它. 在本章,我将会介绍 Git 的一些重要的配置方法和钩子机制以满足自定 ...
- git指令详解总结
Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Gi ...
- Git+GitHub+SaltStack
本文主要介绍日常工作中会经常使用到的一些工具软件. [ 01 ]SaltStack简明教程 [ 02 ]Git 中文教程 Git详解之一 Git起步 Git详解之二 Git基础 Git详解之三 Gi ...
随机推荐
- 使用KNN对MNIST数据集进行实验
由于KNN的计算量太大,还没有使用KD-tree进行优化,所以对于60000训练集,10000测试集的数据计算比较慢.这里只是想测试观察一下KNN的效果而已,不调参. K选择之前看过貌似最好不要超过2 ...
- 20150618_Andriod_设置TextView垂直滚动
布局文件 android:scrollbars="vertical" android:singleLine="false" 代码文件 ctl_tv_conten ...
- poj1703 Lost Cows
给定集合{1,2,...,n}的一个置换,指定每个位置上在其左方且比其小的数的个数,求该置换. 这题我目前还只会O(n^2)的做法. 以后再用更高效的算法解决. http://poj.org/prob ...
- Java 期末复习提纲
Java 开发环境 Java 的特点 面向对象.跨平台.能把中小型程序写成大型程序 开发 Java 的流程 设计类 写代码 重构 Java 程序规范 Javadoc 风格注释 接口以 able 结尾 ...
- SharePoint自动化系列——Content Type相关timer jobs一键执行
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 背景: 在SharePoint Central Administration->Monito ...
- ios布局约束
http://blog.csdn.net/pucker/article/details/41843511 除了使用Pin菜单之外,也可以直接在文档结构窗口中或者设计器中通过拖拽建立约束.在文档结构窗口 ...
- maven入门教程
一.Maven 是什么? Maven 英文名称:专家,由名字可见,这个工具野心非常大.有人说他是"构建工具",一个用来把源代码构建成可发布的构件的工具.也有人说是项目管理工具. 官 ...
- CodeForces 496B Secret Combination
Secret Combination Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u ...
- ubuntu下php xdebug的安装(配置)
首先Xdebug要和php版本对应,具体查看官网 https://xdebug.org/ xdebug-2.1.0PHP Version 5.3.10linux下解压xdebug包.1.进入xd ...
- Beaglebone Black - 控制 BBB 板上的 LED 灯
BBB 的板上有五个 LED 灯,一个电源,四个其他指示灯,usr0 至 usr3 .这次学习是控制 usr0 至 3 让它们亮着,熄灭,闪.算是个 Hello World 实验.非常简单. 需要的材 ...