转自: http://cwind.iteye.com/blog/1666646

有很多文件不必使用git管理。例如Eclipse或其他IDE生成的项目文件,编译生成的各种目标或临时文件等。使用git status时,会在Untracked files里面看到这些文件列表,在一次需要添加的文件比较多时(使用git add . / git add -u),会把这些所有的未跟踪文件添加进索引。

============一些牢骚============
于是自然想要告诉git把这些文件忽略,我们当然会想到去Google,输入本文标题这个关键字(一部分人会直接去看document),然后当然会有很多解决方案,多数告诉我们在.gitignore文件中添加待忽略的文件目录列表;照做,问题很有可能依然存在。
再Google,这次可能找到了help.github.com或stackoverflow上,看到一些原文的讨论;其中讲到在向.gitignore添加忽略文件之前一定要保证那些文件未被git跟踪,即先使用命令git rm --cached filename将它们从索引中删除。终于看到靠谱的解决方案不禁暗喜,照做--敲一下git status试试,问题很有可能仍然存在。
太多中文“技术资料”是复制照搬过来的,转载的人自己并没有试过;稍好一点的在英文社区看到了相关讨论,随手翻译了一下发过来,可能存在理解上的问题或者忽略了一些细节,导致依然没办法解决问题。
所以搜索引擎给出的中文的结果,有很多对解决问题丝毫无用的。Git忽略文件是很普遍也应该是很简单的一个问题,但多数帖子根本连这个问题都没搞明白,于是引发了这一系列的牢骚。
遇到问题要多思考,想想问题的本质,解决方法的原理;最重要的是要切实地去动手做。
============牢骚结束============
解决方案:
1. 本地仓库忽略
本地仓库的文件忽略规则可以在.git/info/exclude文件中添加。这些忽略的文件不会提交到共享库中,因而不会被协作者所共享。
2. 当前工作目录添加文件忽略
对于每一级工作目录,创建一个.gitignore文件,向该文件中添加要忽略的文件或目录。但在创建并编辑这个文件之前,一定要保证要忽略的文件没有添加到git索引中。使用命令git rm --cached filename将要忽略的文件从索引中删除。
--摘抄.gitignore的格式规范
• 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
• 可以使用标准的 glob 模式匹配。
• 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
• 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如[0-9]表示匹配所有 0 到 9 的数字)。
2.1 工作目录的每一层下级目录都可以有一个.gitignore文件,以说明当前目录下需要被git忽略的文件或目录
2.2 .gitignore文件可以被提交到共享库中被协作者共享
3. 全局的.gitignore
可以通过创建~/.gitignore_global并添加到git全局配置以减少每层目录的规则重复定义。使用命令git config --global core.excludesfile ~/.gitignore_global即可
.gitignore_global文件范例
Ruby代码  
  1. <span style="font-size: small;"># Compiled source #
  2. ###################
  3. *.com
  4. *.class
  5. *.dll
  6. *.exe
  7. *.o
  8. *.so
  9. # Packages #
  10. ############
  11. # it's better to unpack these files and commit the raw source
  12. # git has its own built in compression methods
  13. *.7z
  14. *.dmg
  15. *.gz
  16. *.iso
  17. *.jar
  18. *.rar
  19. *.tar
  20. *.zip
  21. # Logs and databases #
  22. ######################
  23. *.log
  24. *.sql
  25. *.sqlite
  26. # OS generated files #
  27. ######################
  28. .DS_Store
  29. .DS_Store?
  30. ._*
  31. .Spotlight-V100
  32. .Trashes
  33. Icon?
  34. ehthumbs.db
  35. Thumbs.db
  36. </span>

References:

1. Ignoring files, https://help.github.com/articles/ignoring-files
2. 初次使用git-忽略某些文件, http://www.phperblog.net/?p=173
3. git ignore file, Git增加忽略文件, http://www.cnblogs.com/wucg/archive/2011/08/16/2141647.html

转载于:https://www.cnblogs.com/sky-heaven/p/5195147.html

git忽略文件【转】相关推荐

  1. Git忽略文件方法【转】

    转自:http://www.cnblogs.com/shangdawei/archive/2012/09/08/2676669.html http://cwind.iteye.com/blog/166 ...

  2. git 忽略文件提交的几种姿势

    大家都知道 git 忽略文件提交可以通过 .gitignore 中进行配置.但是有时这个配置并不能满足自己的需求. 比如 package.json 中我修改了一些配置,但是这些配置只是适合我自己使用, ...

  3. Git学习总结(4)——我的Git忽略文件与忽略文件提交规则和配置总结

    在使用Git的过程中,有的文件比如日志,临时文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交.该怎么办呢?很简单,git为我们提供了一个.gitignore文件只要在这个文件 ...

  4. 添加git 忽略文件

    在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交. Git 忽略文件提交的方法 有三种方法可以实现忽略Gi ...

  5. 【git】git忽略文件 取消忽略文件

    [git]git忽略文件 取消忽略文件 一.git忽略文件 (一)通常操作 忽略成功后会出现灰色图标 git根目录下有一个.gitignore文件,被忽略的文件全部会添加到里面 相关过滤规则举例说明: ...

  6. Git忽略文件及文件夹

    基本git忽略文件规则算是支持简单的正则表达式,比如!,*,[abc] 1.在根目录(与.git在同一目录)新建.gitignore文件 2.在.gitignore编辑规则 #以#开头代表注释行#忽略 ...

  7. idea设置git忽略文件

    idea设置git忽略文件 根据项目忽略 一.老版IDEA配置忽略文件: 二. 新版IDEA配置忽略文件: 特别提醒 根据分支忽略 根据项目忽略 一.老版IDEA配置忽略文件: 该方法是针对当前电脑的 ...

  8. git忽略文件不生效问题解决

    git忽略文件不生效问题解决 文章目录 git忽略文件不生效问题解决 **一 .gitignore添加了忽略文件,但是提交时还会出现这些忽略文件** 一 .gitignore添加了忽略文件,但是提交时 ...

  9. Git忽略文件不起作用解决方案

    1005 解决办法: 清除本地库的缓存 git rm -r --cached . 讲本地代码重新加入 git add . 并让 .gitignore 文件夹生效,读取我配置的过滤规则 git comm ...

最新文章

  1. mysql数据库三级分类_5.在 MySQL数据库中,以下数据库对象与数据库三级模式对应关系正确的是?...
  2. 自研Spring容器,带你解析ioc内部原理
  3. Trunc(dtpPurDate.DateTime)可以将时间取到天。
  4. 域用户不能使用远程桌面登录
  5. 前端自动化构建工具Grunt
  6. python爬携程_python爬虫-携程-eleven参数
  7. dorado7ajax,Dorado7
  8. 领略ES10的新功能
  9. 大数据建设意义_大数据一体化平台打造政府智能数据库,助力智慧政务建设
  10. C语言多线程基础-01-线程的创建与销毁
  11. (最新版2020)Java环境变量配置
  12. 王道考研计算机网络笔记目录
  13. 深度分析:PSP3000被破解 狂欢?还是哀悼?
  14. matlab适应度函数为什么有2个输出,基于遗传算法的LQR优化问题,适应度函数总是报错。...
  15. C语言怎么实现语音功能
  16. 强化学习入门笔记 | UCL silver RL | UC Berkely cs285 DRL
  17. Java 泛型的本质——类型擦除
  18. Word文档检查语法错误及错别字
  19. 关于事件驱动架构在工作中的一些想法及实践
  20. 高级计算机网络 外文文献,计算机网络新技术外文文献翻译

热门文章

  1. 树的遍历 | 翻转二叉树
  2. linux 安装 Django14
  3. 【Java】类加载过程
  4. sql几种删除语句的联系与区别
  5. python3之MongoDB
  6. bzoj3626:[LNOI2014]LCA
  7. 有关UITabbarController的一些重要属性
  8. 在word中,整篇文章想要在每一章另起一页
  9. 哈哈,终于想着注册博客了
  10. qt 消息处理机制与window消息处理机制的比较