git忽略文件和目录

********************************************************

http://jingxuan.io/progit/2-Git%E5%9F%BA%E7%A1%80.html

忽略某些文件

一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。来看一个实际的例子:

$ cat .gitignore
*.[oa]
*~

第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的,我们用不着跟踪它们的版本。第二行告诉 Git 忽略所有以波浪符(~)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。此外,你可能还需要忽略 logtmp 或者 pid 目录,以及自动生成的文档等等。要养成一开始就设置好 .gitignore 文件的习惯,以免将来误提交这类无用的文件。

文件 .gitignore 的格式规范如下:

  • 所有空行或者以注释符号  开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配。
  • 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个a,要么匹配一个b,要么匹配一个c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有0到9的数字)。

我们再看一个 .gitignore 文件的例子:

# 此为注释 – 将被 Git 忽略
# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt

********************************************************

.gitignore 只能忽略没有跟踪过的文件和目录,如果已经跟踪过,需要使用 git rm --cached 命令删除文件和目录的追踪状态(不删除文件),然后在.gitignore中添加不追踪的目录和文件。
时间: 2024-10-13 05:12:32

git忽略文件和目录的相关文章

git忽略文件【转】

转自: http://cwind.iteye.com/blog/1666646 有很多文件不必使用git管理.例如Eclipse或其他IDE生成的项目文件,编译生成的各种目标或临时文件等.使用git status时,会在Untracked files里面看到这些文件列表,在一次需要添加的文件比较多时(使用git add . / git add -u),会把这些所有的未跟踪文件添加进索引. ============一些牢骚============ 于是自然想要告诉git把这些文件忽略,我们当然会想

eclipse设置git忽略文件

使用eclipse开发的程序员们经常会接触版本控制软件,这里只要说下eclipse使用egit的情况下设置忽略文件. 特此说明在这里使用window->team->ignored对于git来说是不起效果的,它对svn有效果,好了不说废话了. 直接选择:windows->show view->Navigator 直接在最左侧选择要忽略的文件->右键->team->ignore 保存即可 常用git忽略文件: /bin//.project/.gitignore/.cl

svn ignore 的用法(忽略文件及目录)

svn ignore 的用法(忽略文件及目录) 若想创建了一个文件夹,并且把它加入版本控制,但忽略文件夹中的所有文件的内容: $ svn mkdir spool $ svn propset svn:ignore '*' spool $ svn ci -m 'Adding "spool" and ignoring its contents.' 若想创建一个文件夹,但不加入版本控制,即忽略这个文件夹: $ mkdir spool $ svn propset svn:ignore 'spoo

Git设置文件或目录忽略跟踪的三种方式

1. 共享的忽略设置方式 本地仓库根目录,创建.gitignore文件,并编辑正则匹配需要忽略的文件或目录. .gitignore文件需要上传到仓库,同时会影响到他人,共享忽略设置 注意: .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的. 添加忽略之后,已经提交到版本库中的文件是无法忽略的.只能clone到本地,删除后,再进行忽略. 2. 非共享的忽略设置 ① 编辑 .git/info/exclude 文件,设置

git 忽略文件

解决方案: 1. 本地仓库忽略 本地仓库的文件忽略规则可以在.git/info/exclude文件中添加.这些忽略的文件不会提交到共享库中,因而不会被协作者所共享. 2. 当前工作目录添加文件忽略 对于每一级工作目录,创建一个.gitignore文件,向该文件中添加要忽略的文件或目录.但在创建并编辑这个文件之前,一定要保证要忽略的文件没有添加到git索引中.使用命令git rm --cached filename将要忽略的文件从索引中删除. --摘抄.gitignore的格式规范 • 所有空行或

git 忽略文件的三种方式

1. 在项目目录下新建.gitignore文件并添加规则 特点:此种方式的忽略规则只局限于本项目目录及其子目录,并且.gitignore文件会被提交到远程仓库进行共享忽略规则. 2. 在.git/info/exclude中添加忽略规则 特点:忽略规则局限于本项目目录及其子目录,规则只存在本地不会被提交和共享. 3. 设置全局忽略文件 git config --global core.excludesfile ~/.gitignore 特点:忽略规则将作用于全局所有的项目,并且规则不会被存储到远程

git 忽略文件的俩种方法及区别

在本地git的仓库中,如果需要忽略文件被add,有俩种很好用的方法. 第一种,在git仓库的根目录下添加.gitignore文件,在.gitignore文件中添加自己需要避免添加的文件或者文件夹路径. 规则如下: # 此为注释 – 将被 Git 忽略 *.a # 忽略所有 .a 结尾的文件 !lib.a # 但 lib.a 除外 /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO build/ # 忽略 build/ 目录下的所有文件 doc/*.txt #

.gitignore文件中添加忽略文件或者目录后,不起作用。

出现该问题放入原因: 在git库中已存在了这个文件,之前push提交过该文件. .gitignore文件只对还没有加入版本管理的文件起作用,如果之前已经用git把这些文件纳入了版本库,就不起作用了. 解决问题方式: 将需要忽略的文件先复制出来,然后删除项目目录下的这些需要忽略的文件.(如果是编译后的文件,直接删除就可以). 在.gitignore文件中添加对应的需要忽略的文件或者目录. 提交所做的修改到本地版本库,然后推送到远程的版本库. 文件前面的绿色对勾变成灰色的减号表明操作成功. 原文地址

Git忽略文件(.ignore)以及git status,git diff,git rm命令

git相关的其他命令 在之前的两篇文章中简单介绍了与git相关的基础知识,如果想要熟练和快速运用git,还需要熟悉git的其他相关的命令.这一篇文章就是关于git的一些常用的"其它命令" 忽略文件 如果有不想要某些文件被纳入git的管理,可以在git中忽略掉这些文件.这时,我们需要创建一个名为.gitignore的文件,在这个文件中写入想要忽略的文件或文件类型.下面列出文件.gitignore的格式规范: 所有空行或者以#开头的行都会被Git忽略,相当于是注释 可以使用shell所使用