转自: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. unity 菜单栏添加新菜单

    using UnityEngine; using System.Collections; using UnityEditor; public class jqmTools : CreateSphere ...

  2. Jmeter&Ant构建自动化测试平台

    JMeter是一个软件,使负载测试或业绩为导向的业务(功能)测试不同的协议或技术. Apache软件基金会的Stefano Mazzocchi JMeter的最初的开发.他写道:它主要对 Apache ...

  3. 九度oj 题目1077:最大序列和

    题目1077:最大序列和 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6435 解决:1931 题目描述: 给出一个整数序列S,其中有N个数,定义其中一个非空连续子序列T中所有数的和为T ...

  4. [BZOJ1179] [Apio2009]Atm(tarjan缩点 + spfa)

    传送门 题意 N个点M条边的有向图 每个点有点权 从某一个结点出发 问能获得的最大点权和 一个点的点权最多被计算一次 N<=500000 M<=500000 思路 先tarjan缩点,然后 ...

  5. 【区间DP+好题】String painter

    https://www.bnuoj.com/v3/contest_show.php?cid=9149#problem/G [题意] 给定两个长度相同的字符串A,B.每次操作都能把A中的任意一个子段变成 ...

  6. [ C++ 快速高精度模板 ] [ BigN类 ] 大整数类 高精度 模板 BigInt FFT 快速傅里叶变换

    [原创 转载请注明]瞎写的,如果代码有错,或者各位大佬有什么意见建议,望不吝赐教 更新日志: 对于规模较小的整数乘法使用$$O(n^2)$$方法,提高速度 modify()和operator[]的bu ...

  7. SOJ 3531_Number Pyramids

    [题意]给定一个数top及最底层元素个数n,构成一个以给top为塔尖,层数为n的如杨辉三角的金字塔,求有多少种 [分析]最终种数其实只与最底层的n个数的组合数有关,上层的每个都数是由最底层数相加得来 ...

  8. Spring中通过java的@Valid注解和@ControllerAdvice实现全局异常处理。

    通过java原生的@Valid注解和spring的@ControllerAdvice和@ExceptionHandler实现全局异常处理的方法: controller中加入@Valid注解: @Req ...

  9. Spring基础入门(三)

    一.Spring的jdbcTemplate操作 (1)Spring是一站式框架,对于javaee三层,每一层都有解决技术. web层:springMVC service:spring的ioc dao层 ...

  10. Eclipse的SVN插件 Subclipse

    原文:https://www.oschina.net/p/subclipse Subclipse 是一个为 Eclipse IDE 添加 Subversion 支持的项目.支持几乎所有版本的Eclip ...