.gitignore详解

.gitignore详解

今天讲讲git中一个非常重要的文件 -- .gitignore。

首先强调一遍,这个文件的文件名就是:".gitignore" ,注意前面有一个 . 点,这样的扩展名在windows下不好创建,这里给出win7系统下创建的方法:

创建一个文件,文件名命名为 .gitignore. 注意前后都有一个点,保存后系统会自动重命名为 .gitignore 。

一般来说每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。

实际项目中,很多文件都是不需要版本管理的,比如Python的.pyc文件和一些包含密码的配置文件等等。

这个文件的内容是一些规则,Git会根据这些规则来判断是否将文件添加到版本控制中。

下面我们看看常用的规则:

  • /mtk/ 过滤整个文件夹
  • *.zip 过滤所有.zip文件
  • /mtk/do.c 过滤某个具体文件

很简单吧,被过滤掉的文件就不会出现在你的GitHub库中了,当然本地库中还有,只是push的时候不会上传。

需要注意的是,gitignore还可以指定要将哪些文件添加到版本管理中:

  • !*.zip
  • !/mtk/one.txt

唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。

为什么要有两种规则呢?想象一个场景:我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理。那么我们就需要使用:

  • /mtk/
  • !/mtk/one.txt
    假设我们只有过滤规则没有添加规则,那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来!

最后需要强调的一点是,如果你不慎在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。

简单来说,出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。

所以大家一定要养成在项目开始就创建.gitignore文件的习惯,否则一旦push,处理起来会非常麻烦。

# 此为注释 – 将被 Git 忽略

*.a       # 忽略所有 .a 结尾的文件
!lib.a    # 但 lib.a 除外
/TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/    # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
沙耶 的博客 http://www.cnblogs.com/ShaYeBlog/

推荐阅读更多精彩内容

  • 在使用git作版本控制时,git会默认把git控制的文件夹里面的所有文件都加入到版本控制。但是在实践中,我们经常会...
    nowazhen阅读 1,600评论 0 0
  • 对于经常使用Git的朋友来说,.gitignore配置一定不会陌生。废话不说多了,接下来就来说说这个.gitign...
    Sherry凤阅读 454评论 0 0
  • 写在前面 在团队做过软件开发的,版本控制必是不可或缺的一项。目前,版本控制主要分为集中式版本控制系统和分布式版本控...
    Jack_lin阅读 9,554评论 45 435
  • 在那么一个瞬间觉得自己活着真好,去医院诊断后,虽然以后的日子会没那么多美食环绕,但是我还依然会变好,变成...
    VOATJ阅读 75评论 0 0
  • 在婚礼的现场,当父亲把自己女儿的手递出去的时候,那一刻会是多么的百感交集呢?自己宝贝了二十多年的女儿,如今就要投入...
    你我的文字缘阅读 922评论 0 1
  • 在这个日新月异的时代,人们的步伐越来越匆匆。社会的竞争也越演越烈,我们要特别努力特别挣扎才有办法得到我们想要的岗位...
    Crystal向暖阅读 1,206评论 3 10
  • 女神们下班了,男神们还在忙! 好多朋友问,你们公司全是女将啊! 有点懒得解释了,不过还是要说一下。我们深圳,上海,...
    Totozhao阅读 442评论 0 3