转自:http://blog.csdn.net/liuqiaoyu080512/article/details/8648266

git 可以管理所有文件的变更, 但并不是所有文件都有意义。

大部分二进制文件没有意义

  比如说 VC 工程的 Debug 和 Release 文件夹下的文件, 或者 java 项目的 bin 文件夹中的 class 文件, 这些文件都是基于源代码生成的, 只要有源代码就能生成出来,所以版本管理的时候应该忽略它们。

有些文本文件也没有意义

  比如说 VC 工程中的 .plg 文件, 它是个 html 格式的文本文件, 保存了编译后产生的 error 和 warning, 显然没有进行版本管理的必要。

有些二进制文件不能忽略

  比如说 MFC 工程的 res\Toolbar.bmp, 是工具栏的位图文件,二进制文件, 如果忽略,工程就不完整了,别人 clone 你的版本库后用不了。 而这些文件一般不频繁变更,进行版本管理也不浪费空间。

总之,能从别的文件生成的文件就应该被忽略。 要忽略这些文件,一般在 .gitignore 中设置规则, 如下是一篇对 .gitignore 介绍得很好的文章(转自 git 创建 .gitignore 文件 建立项目过滤规则):

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

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

    1. 开放模式负责设置过滤哪些文件和文件夹,eg:

      过滤文件夹设置:

      /mtk/       表示过滤这个文件夹

      过滤文件设置

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

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

      指定过滤某个文件:

      /mtk/do.c
      /mtk/if.h
    2. 保守模式负责设置哪些文件不被过滤,也就是哪些文件要被跟踪。 跟踪某个文件夹

      !/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/

      .gitignore 不支持正则表达式,但是也基本够用了。

      一般 VC 在工程根目录下设置如下 .gitignore 就行:

          /Debug
      /RELEASE
      *.ncb
      *.plg
      *.opt
      *.aps

      eclipse 在项目根目录下设置如下 .gitignore 就行:

      /bin/  

      需要注意的是:.gitignore 中的规则只对 未提交 且 未缓存 的文件有效。因此,如果在"未缓存的改动"中发现有需要忽略的文件, 马上修改 .gitignore,再重新扫描就会发现该文件被忽略了。

.gitignore(转载)的更多相关文章

  1. [转]Git忽略规则及.gitignore规则不生效的解决办法

    在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件).这个文件每一行保存了一个匹配的规则例如: # 此为注 ...

  2. Git 的 .gitignore 配置 转载

    .gitignore 配置文件用于配置不需要加入版本管理的文件,配置好该文件可以为我们的版本管理带来很大的便利,以下是个人对于配置 .gitignore 的一些心得. 1.配置语法: 以斜杠“/”开头 ...

  3. 【转载】Git忽略规则和.gitignore规则不生效的解决办法

    原文:https://www.cnblogs.com/zhangxiaoliu/p/6008038.html Git忽略规则: 在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改 ...

  4. .gitignore文件不起作用

    当我们用git时常常会习惯把我们不想上传到远程代码库中的一些本地文件(夹)放在一个叫做.gitignore的文件中,例如常见的本地build文件夹,一些IDE如Intellig,Eclipse的项目管 ...

  5. 用对 gitignore

    使用 git 做代码管理工具时,设置 gitignore 是必不可少的流程,一些系统或者 IDE 会在目录下生成与项目不相关的文件,而这些文件我们不期望被提交到仓库之中.理解 gitignore 的 ...

  6. 【转载】Git的安装与使用

    Git的安装与使用  转载来源:http://www.cnblogs.com/Bonker/p/3441781.html 1,下载git https://code.google.com/p/msysg ...

  7. (转载)Git使用教程

    转载自:http://www.418log.org/post-89.html .什么是Git 简单地说,Git是 Linux 之父 Linus Trovalds,为管理 Linux 内核代码而建立的, ...

  8. 深入浅出Git教程【转载】转载

    深入浅出Git教程(转载)   目录 一.版本控制概要 1.1.什么是版本控制 1.2.常用术语 1.3.常见的版本控制器 1.4.版本控制分类 1.4.1.本地版本控制 1.4.2.集中版本控制 1 ...

  9. Git忽略已经被版本控制的文件(添加.gitignore不会起作用)

    说明:已经被维护起来的文件(需要被远程仓库控制),即使加入.gitignore也会无济于事. .gitignore只对那些只存在在本地,而不在远程仓库的文件起作用.(untraked file). 操 ...

随机推荐

  1. 谷歌浏览器添加Bing搜索引擎:

    谷歌浏览器添加Bing搜索引擎:   https://www.bing.com/search?q=%s&pc=MOZI&form=MOZLBR  

  2. 易接SDK ios9以上无法弹出充值界面的一种情况

    充值需要用到http请求: 打开info.plist, 在app tansport security  setting 这个项 ,  加入  NSAllowsArbitraryLoads YES

  3. Leetcode 152.乘机最大子序列

    乘积最大子序列 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 ...

  4. Windows 10 & Game Bar & YouTube & video records

    Windows 10 & Game Bar & YouTube & video records Windows 10 C:\Users\xgqfrms\Videos\Captu ...

  5. 开发辅助网站---programcreek

    开发中让我们事半功倍的工具网站,开发中经常遇到api如何使用,很好的解决这个问题.java代码api案例网,提供最简单的demo,很不错分享一下,大家可以用用. http://www.programc ...

  6. CALayer之 customizing timing of an animation

    customizing timing of an animation Timing is an important part of animations, and with Core Animatio ...

  7. UVA 1347_Tour

    题意: 给定一系列按x坐标升序排列的点,一个人从左向右走到终点再从终点走回起点,要求每个点恰好经过一次,问所走过的最短路径长度. 分析: 可以看成是两个人同时从起点向终点走,且除起点终点外每个点恰有一 ...

  8. 第一个Spring程序(DI的实现)

    一,依赖注入:Dependency Injection(DI)与控制反转(IoC),不同角度但是同一个概念.首先我们理解一点在传统方式中我们使用new的方式来创建一个对象,这会造成对象与被实例化的对象 ...

  9. Ubuntu 16.04安装基于nethogs衍生的网络监控软件(应用实时网速监控)

    基于nethogs衍生的网络监控软件有如下所列举的: nettop显示数据包类型,按数据包的大小或数量排序. ettercap是以太网的网络嗅探器/拦截器/记录器 darkstat通过主机,协议等方式 ...

  10. 基于Token的身份验证——JWT(转)

    本文转自:http://www.cnblogs.com/zjutzz/p/5790180.html 感谢作者 初次了解JWT,很基础,高手勿喷.基于Token的身份验证用来替代传统的cookie+se ...