让git忽略文件

时间:2010-07-10 19:53:30

标签: git

我正在尝试让git忽略我的一些文件而且我找到了一个关于如何做到这一点的描述

  

来自:http://github.com/guides/git-cheat-sheet   忽略一些文件

     

在根目录中添加文件   叫.gitignore并添加一些文件   它:(评论以哈希开头)   * .log db / schema.rb db / schema.sql

     

Git会自动忽略空   目录。如果你想拥有一个   log /目录,但想要忽略所有   其中的文件,添加以下内容   到根.gitignore的行:(行   以'!'开头是例外情况)

     

log / *!.gitignore

     

然后在。中添加一个空的.gitignore   空目录:

     

触摸日志/ .gitignore

所以我在我的项目文件夹中创建了一个名为.gitignore的文件,并在其中写了以下内容:

phpMyAdmin/*
nbproject/*
inc/mysql_config.php
!.gitignore

但是当我提交时,文件会从提交中排除......

2 个答案:

答案 0 :(得分:32)

https://www.gitignore.io/

我创建了一个Web实用程序,可以帮助您为项目生成有用的.gitignore文件。它将帮助您忽略操作系统,编程语言和IDE生成的文件。

答案 1 :(得分:29)

根据man gitignore

  

描述

     

gitignore文件指定git应忽略的故意未跟踪文件。注意   所有gitignore文件实际上只涉及尚未存在的文件   由git跟踪;为了忽略已经跟踪的文件中未提交的更改,   请参阅git update-index --assume-unchanged文档。

如果你已经添加它们,它就无济于事。它主要是为了防止首先添加。这样,您可以忽略.tmp个文件并添加整个目录,而不必担心会添加.tmp个文件。

我相信您可以使用以下命令将其从索引中删除:

git rm --cached file_to_stop_tracking_but_dont_want_to_delete.txt

<强>更新

此外,.gitignore需要位于基本目录或至少高于这些目录的位置。另外,从目录中取出“*”:

phpMyAdmin/
nbproject/
inc/mysql_config.php
!.gitignore

请注意phpMyAdmin/ vs /phpMyAdmin vs phpMyAdmin。也来自man gitignore

  
      
  • 如果图案以斜线结尾,则会将其删除   以下描述,但它只会找到与目录的匹配。   换句话说,foo/将匹配目录foo和下面的路径   它,但不匹配常规文件或符号链接foo(这是   与路径规范在git中的工作方式一致。

  •   
  • 如果模式不包含斜杠/,git会将其视为shell   glob模式并检查与路径名匹配而没有前导目录。

  •   
  • 否则,git将模式视为适合消费的shell glob   fnmatch(3)带有FNM_PATHNAME标志:模式中的通配符   与路径名中的/不匹配。例如,Documentation/*.html   匹配Documentation/git.html但不匹配Documentation/ppc/ppc.html。一个   前导斜杠匹配路径名的开头;例如,/*.c   匹配cat-file.c但不匹配mozilla-sha1/sha1.c

  •