gitignores手册

来源:互联网 发布:穷人突破阶级知乎 编辑:程序博客网 时间:2024/05/22 19:07

名称

gitignore-指定特定的不被跟踪的文件

概要

与$GIT_DIR/info/exclude和.gitignore等文件有关

介绍

一个gitignore文件指定不被git所追踪的文件。已经被追踪的文件不受影响。见下面的“注意”;

gitignore每一行指定一种模式。当git决定是否忽略某个路径时,它检查多个gitignore文件的模式,从高到低优先级通过下面规则确定。

  • 来自于支持使用模式的命令行命令
  • 来自于文件系统中的.gitignore文件。目录结构较高的.gitignore模式将被较近的.gitignore覆盖
  • 来自$GIT_DIR/info/exclude
  • 被配置变量core.excludesfile指定文件中的模式

如果你想让团队里所有成员的git都不追踪某些文件,可以使用.gitignore;如果你只想在自己的仓库中不追踪某些文件,可以通过在$GIT_DIR/info/exclude中设置;如果你想让自己拥有的所有仓库都不追踪某些文件,可以在~/.gitconfig中的core.excludesfile指定全局忽略文件的地址。

模式格式

  • 空白行不匹配文件。可作为分隔符增加可读性
  • 以#开头的行是注释
  • 可选的!前缀将否定模式,任何匹配该模式并被忽略的文件将重新受到追踪。当然该文件需要有更高的优先级
  • 以/结尾的模式将会匹配特定的文件夹以及它下面的文件
  • 如果包含/结尾。git将匹配相对于.gitignore文件的路径(如果没有.gitignore则从顶级工作目录开始$GIT_DIR)
  • 通配符并不匹配/
  • 以/开头的模式匹配文件名开头。如"/*.c" 匹配 "cat-file.c" 但不匹配 "mozilla-sha1/sha1.c".

注意

gitignore的目的是保证一些不被追踪的文件仍然不被追踪;

忽略已被追踪文件还未提交的改变使用 git update-index --assume-unchanged;

停止已经追踪的文件git rm --cached

示例

    $ git status    [...]    # Untracked files:    [...]    #       Documentation/foo.html    #       Documentation/gitignore.html    #       file.o    #       lib.a    #       src/internal.o    [...]    $ cat .git/info/exclude    # ignore objects and archives, anywhere in the tree.    *.[oa]    $ cat Documentation/.gitignore    # ignore generated html files,    *.html    # except foo.html which is maintained by hand    !foo.html    $ git status    [...]    # Untracked files:    [...]    #       Documentation/foo.html    [...]

    $ cat .gitignore    vmlinux*    $ ls arch/foo/kernel/vm*    arch/foo/kernel/vmlinux.lds.S    $ echo '!/vmlinux*' >arch/foo/kernel/.gitignore


参考

http://git-scm.com/docs/gitignore

原创粉丝点击