git ignore文件仍然提交日志

时间:2012-03-16 22:07:36

标签: git ignore

我在这上面阅读了各种各样的帖子,我无法让它发挥作用。

在我的.ignore文件中

*/[Ll]ogs/*

虽然我已经尝试了大约十几个其他版本,但是没有明确命名文件,我仍然在提交这些文件

新文件:src / methodfitness.web / Logs / Trace.log.2012-03-15

我也有一个类似的问题,帮助一个同事排除他的web.config文件,但现在这是他的问题,我只是不想要这些血腥的日志文件。

感谢,

[R

5 个答案:

答案 0 :(得分:9)

模式*/[Ll]ogs/*只匹配一级依赖的日志文件夹。你的深度是3级。你还说“.ignore文件”,我希望你的意思是“.gitignore”。无论如何,您可以通过以下四种方式解决此问题:

  1. 将模式更改为src/*/[Ll]ogs/*

  2. 将模式*/[Ll]ogs/*放入src/.gitignore而不是您的根.gitignore

  3. 将模式更改为[Ll]ogs/。这将忽略整个树中名为“Logs”或“logs”的任何目录。如果您只想忽略特定域文件夹中此名称的目录,这可能不合适。

  4. 将模式*放入src/methodfitness.web/Logs/.gitignore。这将忽略该文件夹中的所有文件。这种方法的好处是git在进行结账时仍然会创建Logs文件夹,这可能是也可能不是你想要发生的事情。如果您这样做,请确保明确添加.gitignore文件,否则最终会忽略它。


  5. 在相关说明中,不需要尾随*。您可以使用忽略模式指示目录,它将跳过整个目录。您希望尾随*的唯一时间是您需要能够取消忽略特定文件(使用前缀!语法,例如!*/[Ll]ogs/goodfile.txt

答案 1 :(得分:1)

您可以使用[Ll]ogs/作为忽略模式。

将该模式放在目录结构根目录的.gitignore文件中应忽略目录树中任何位置名为Logslogs的所有目录。

答案 2 :(得分:1)

你为什么用这么奇怪的方法?

要忽略src/methodfitness.web/Logs/文件夹下的所有文件,请尝试将.gitignore文件添加到相应的行:src/methodfitness.web/Logs/

答案 3 :(得分:1)

为了忽略工作副本中任何深处的所有日志目录(以及内容),您只需阅读gitignore man mage并采用忽略foo的示例来自man-page的dir。

对于根平原中的.gitignore

logs/

模式诀窍

答案 4 :(得分:0)

您还可以使用git-scm (git version 2.16)

文档中所述的双星号。

例如

**/[Ll]ogs
  

两个与完整路径名匹配的连续星号(“ **”)可能具有特殊含义:

     
      
  • 前导“ **”后跟斜杠表示在所有目录中均匹配。例如,“ ** / foo”可在任何位置匹配文件或目录“ foo”,   与模式“ foo”相同。 “ ** / foo / bar”匹配文件或目录“ bar”   直接在目录“ foo”下的任何位置。

  •   
  • 后缀“ / **”匹配其中的所有内容。例如,相对于.gitignore文件的位置,“ abc / **”匹配目录“ abc”内的所有文件的深度是无限的。

  •   
  • 一个斜杠后跟两个连续的星号,然后一个斜杠匹配零个或多个目录。例如,“ a / ** / b”匹配“ a / b”,“ a / x / b”,“ a / x / y / b”等。

  •   
     

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