GitHub gitignore官方文档翻译

搜索下吧!贴的都是写细枝末节,所以自己翻译下官方文档吧。文档地址

名称:

gitignore:指定不想被跟踪的文件(跟踪:untrack,等同于 同步、版本控制)

语法:

$HOME/.config/git/ignore, $GIT_DIR/info/exclude, .gitignore

($GIT_DIR是指.git文件,就是使用git init后生成的隐藏文件。如果你设置了GIT_DIR环境变量,那就会被覆盖.git文件,这样做不好哦)

详细描述:

gitignore文件用于指定不想跟踪(同步)的文件,已经被Git跟踪的文件不会受到印象。

gitignore文件的每一行都指定了一种模式(pattern)。当决定是否要忽略某一路径时,git会从多个文件源检查gitignore模式。并依照下文的顺序,从高优先级——》低优先级(同一优先级,最后一个匹配的模式决定了是否进行忽略)进行匹配。

模式读取来源:

1.支持gitignore的命令行(commadn line)   (如git ls-files)

2. .gitignore文件中读取,目录是当前命令行的目录,或者其父目录。并且低层次的父目录会覆盖高层次的父目录。所以该模式和.gitignore文件的位置有关系,通常project中都会有一个.gitignore文件,因为他在目录中层次最低,所以优先级最高(可覆盖上层规则)。

3. $GIT_DIR/info/exclude

4.被core.excludesFile配置变量指定的文件

选那个文件存放模式:

1.需要被版本控制
,通过clone发布到别的仓库:写进.gitignore文件里 (通过上下文的语义可以看出,小明复制了小强的A仓库,这个复制的就是别的仓库了)

2.指定一个仓库,不被别人仓库共享的:写进$GIT_DIR/info/exclude文件里 (例如一个你自己编写的测试文件,就没必要分享给别人了)

3.在任何情况下都希望被忽略的:在~/.gitconfig目录下core.excludesFile。该默认值是$XDG_CONFIG_HOME/git/ignore
,如果$XDG_CONFIG_HOME/git/ignore 是空或未设置,就用$HOME/.config/git/ignore代替。
(上面说的$XDG_CONFIG_HOME 是一些环境变量,类似PATH 一般类linux中有指定。Ubuntu就有$HOME这个目录,其他也不清楚了⊙﹏⊙b汗)

底层的git管道工具(就是过滤的意思吧!linux的管道符)如git list-files、git read-tree,通过指定的命令行选项 读取gitignore模式,或从文件中读取。高级的git工具如git status、git add将从上文指定的来源读取模式。

模式格式:

1.空行不匹配任何文件,可以用来分块增加可读性

2.以#开头作为 注释,Put a backslash ("\")
in front of the first hash for patterns that begin with a hash.(不太理解,怎么还和hash有关了,有谁知道吧?)

3.末尾的空格被忽略,除非被反斜杠"\"(转义符)引用。

4.前缀!用来反模式:就是去反的操作。  如果目录被ignore了,文件取反也不能被track跟踪。

5.后缀斜线/,只匹配目录和其下面的文件,不匹配该名称的文件。 如hello/ 不匹配hello文件。

6.如果模式中没有反斜杠/,git将把它当做shell统配符并且目录相对于.gitignore文件的位置。

7.否则将被当做shell中的通配符处理,并且通配符不能代表/  。如"Documentation/*.html"匹配"Documentation/git.html" 
但是不匹配"Documentation/ppc/ppc.html" or "tools/perf/Documentation/perf.html" 。

8.头部的斜杠"\"匹配开头的路径(也就是目录了),例如:"/*.c"匹配"cat-file.c",但不匹配"mozilla-sha1/sha1.c"。

两个连续的星号"**",匹配所有的路径,有着特殊的含义:

1.开头两星,跟一斜线,匹配所含有路径。如:“**/foo”,匹配任意地方的foo文件或目录。“**foo/bar"匹配紧跟在任意foo目录下的文件或目录”bar".

2.末尾“/**",匹配其内的任何东西。如"abc/**",匹配abc目录下的所有文件。

3.斜杠两星斜杠 ,匹配0或任意目录。如“a/**/b",匹配"a/b" "a/c/b" "a/c/d/b"

4.其他连续的星号视为无效。

注意:

gitignore文件的目的是确保还未被 跟踪的文件,不会被跟踪。

停止已被跟踪的文件,使用git rm --cached

举例:如何只track某一文件夹下的文件:

  $ cat .gitignore
    # exclude everything except directory foo/bar
    /*
    !/foo
    /foo/*
    !/foo/bar

这个通配符不能代表”/" 即目录很关键。得用**代表任意目录,这和android那个proguard差不多

时间: 2024-07-31 09:57:47

GitHub gitignore官方文档翻译的相关文章

Swift 集合类型(Collection Type) 之 字典(dictionary)(官方文档翻译及总结)

Swift语言提供经典的数组和字典两种集合类型来存储集合数据.数组和字典中存储的数据值类型必须明确.这意味着我们不能把不正确的数据类型插入其中.Swift对显式类型集合的使用确保了我们的代码对工作所需要的类型非常清楚.也让我们在开发中可以早早的找到任何的类型不匹配错误.如果你用变量(var)创建的集合,这些集合就是可变的(增删改).如果用常理创建的,这些集合是不能被操作的. 注意: 如果集合的元素是不变的,那就将集合声明为常量.这样Swift编译器能对你创建的集合做性能优化. 1. 数组(arr

NServiceBus官方文档翻译(一)NServiceBus 概况

NServiceBus 概况 NServiceBus 被设计用来组合面向业务的服务,它并不是用来替代诸如 WCF 一类的RPC技术. NServiceBus 不只包含通信模块,像其他成熟的SOA和DDD项目一样,它使用了多种组合的方法和技术. 本篇文章探讨了 NServiceBus 和微软相关产品的相似点和不同点. 相比 BizTalk 更接近 WCF 当人们听到“服务总线”这个名词时,一般会描绘出如上图所示的画面,像 BizTalk 一样所有的通信都经过一个中央结点.这实际上描述的是一个代理的

Python3.2官方文档翻译--标准库概览(一)

7.1 操作系统接口 Os模块提供主要许多与操作系统交互的函数. >>> import os >>> os.getcwd() # Return the current working directory 'C:\\Python31' >>> os.chdir('/server/accesslogs') # Change current working directory >>> os.system('mkdir today') # R

Alljoyn瘦客户端库介绍(官方文档翻译)

Alljoyn瘦客户端库介绍(1) 1.简介 本文档对AllJoynTM瘦客户端的核心库文件(AJTCL)进行了详尽的介绍.本文档介绍了系统整体架构,AllJoyn框架结构,并着重于介绍如何将嵌入式设备加入AllJoyn系统整体架构中.1.1目的 本文档介绍了如何使一个受限于功耗.计算能力和内存的设备(嵌入式设备)加入AllJoyn分布式系统.具体而言,本文档包括了对AllJoyn面向嵌入式系统的方面的介绍,并着重描述了基于AllJoyn的系统的各个组件是如何与嵌入式设备协作以构建一个基于接近式

Oracle 12c 12.1.0.1.0管理控制文件官方文档翻译说明

Link: http://download.csdn.net/detail/rlhua/7718571 官方Link: http://docs.oracle.com/database/121/ADMIN/control.htm#ADMIN006 版本: [email protected]>select * from v$version; BANNER                                                                          

官方文档翻译:Innodb的锁

InnoDB Record, Gap, and Next-Key Locks 考虑到翻译准确性,对于某些特殊名称不做翻译,以免误导: InnoDB has several types of record-level locks including record locks, gap locks, and next-key locks. innodb 有几种行锁类型,包括,record locks(记录锁),gap locks(间隙锁),and next-key locks(组合). Record

Aircrack-ng官方文档翻译[中英对照]---Airmon-ng

Aircrack-ng官方文档翻译---Airmon-ng Description[简介] This script can be used to enable monitor mode on wireless interfaces. It may also be used to go back from monitor mode to managed mode. Entering the airmon-ng command without parameters will show the int

Aircrack-ng官方文档翻译[中英对照]---Airdecap-ng

Aircrack-ng官方文档翻译---Airdecap-ng Description[简介] With airdecap-ng you can decrypt WEP/WPA/WPA2 capture files. As well, it can also be used to strip the wireless headers from an unencrypted wireless capture. It outputs a new file ending with ”-dec.cap”

Swift语言官方文档翻译(2)

A Swift Tour 按照惯例,我们一般学习一个新语言的时候,我们都习惯性的在屏幕上打印"Hello, World",在Swift中,你可以用如下一个单独语句实现 println("Hello,World") 如果你用C或者OC写过程序,那么上面的语句对于你来说是很熟悉的.在Swift中,这一行代码就是一个完整的程序,你不需要为了类似I/O或者String handling去导入一些jar包.全局变量将作为一个程序的入口点,所以你不需要main函数,你也不需要在