Git .gitignore文件的使用

本文转载自 http://blog.csdn.net/xmyzlz/article/details/8592302linux

 

 

在git中若是想忽略掉某个文件,不让这个文件提交到版本库中,可使用修改 .gitignore 文件的方法。这个文件每一行保存了一个匹配的规则例如:git

# 此为注释 – 将被 Git 忽略windows

            *.a       # 忽略全部 .a 结尾的文件
            !lib.a    # 但 lib.a 除外
            /TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
            build/    # 忽略 build/ 目录下的全部文件缓存

            doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt编辑器

    这样设置了之后 全部的 .pyc 文件都不会添加到版本库中去。ui

    另外 git 提供了一个全局的 .gitignore,你能够在你的用户目录下建立 ~/.gitignoreglobal 文件,以一样的规则来划定哪些文件是不须要版本控制的。spa

须要执行 git config --global core.excludesfile ~/.gitignoreglobal来使得它生效。.net

其余的一些过滤条件命令行

    * ?:表明任意的一个字符
    * *:表明任意数目的字符
    * {!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提交的时候有不少没必要要的文件也被提交了,如今就想,有没有一中办法吧没必要要的文件进行忽略掉,百度了一下,找到了,就是新建.gitignore而后再里面声明要忽略的文件夹或者文件就能够了,不过麻烦又来了,由于是点开头,没有文件名,没办法直接在windows目录下直接建立,必须经过右键Git Bash,按照linux的方式来新建.gitignore文件。具体步骤以下:

1. 在须要建立 .gitignore 文件的文件夹, 右键选择

Git Bash 进入命令行,进入项目所在目录。

2. 输入 touch .gitignore 在文件夹就生成了一个“.gitignore”文件。

而后在”.gitignore” 文件里输入你要忽略的文件夹及其文件就能够了。

3.而后用编辑器打开这个文件进行编辑就好了。若是你很牛,熟悉linux下的vi编辑的命令,也能够用命令来声明规则额。在这里就不说了额,
附: vi编辑器的怎么换行呢?

总结:vi保存退出命令x和wq的区别

搜集:不会linux下vi命令,伤不起啊

4.而后就写规则来操做要忽略的文件了。.gitignore文件过滤有两种模式,开放模式和保守模式

4.1开放模式负责设置过滤哪些文件和文件夹

eg:

过滤文件夹设置:

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

过滤文件设置

指定过滤某种类型的文件:
*.zip
*.rar
*.via
*.tmp
*.err

指定过滤某个文件:
/mtk/do.c

/mtk/if.h

4.2 b保守模式负责设置哪些文件不被过滤,也就是哪些文件要被跟踪。
跟踪某个文件夹

!/plutommi/mmi

跟踪某类文件

!*.c

!*.h

跟踪某个指定文件

!/plutommi/mmi/mmi_features.h

4.3.配置.gitignore 的简易原则

采用共享模式与保守模式结合配置的办法。eg:一个文件夹下有不少文件夹和文件,而我只想跟踪其中的一个文件,这样设置就能够知足这种状况,先用共享模式把整个目录 都设置为不跟踪,而后再用保守模式把这个文件夹中想要跟踪的文件设置为被跟踪,配置很简单,就能够跟踪想要跟踪的文件
相关文章
相关标签/搜索