【问题标题】:Git - Ignore certain files contained in specific foldersGit - 忽略特定文件夹中包含的某些文件
【发布时间】:2010-11-01 13:41:19
【问题描述】:

我正在使用 msysgit 并且有一个项目树,其中包含树中的许多 bin/ 文件夹。使用项目根目录中的 .gitignore 文件,我需要忽略驻留在项目树中任何位置的 bin/ 文件夹中的所有 .dll 文件。我已经尝试过“bin/*.dll”,但这不起作用,我认为它只适用于项目根目录中的 bin/ 文件夹。

【问题讨论】:

  • 我确实确认“git add --dry-run *.dll”只添加非忽略的.dll。你能发布你的 .gitignore 文件的内容吗?
  • 你是对的:'*/bin/.dll' 仅适用于 'x/bin/z.dll'(深度 2),不适用于 'x/y/ bin/z.dll'(深度 3)。现在调查一下。
  • 我不确定 gitignore 模式是否支持递归检测目录...我已经修改了我的答案。
  • 这个问题 (stackoverflow.com/questions/991801/…) 似乎有一个解决方案,但我无法使其适用于 all 深度的给定目录以忽略...

标签: git msysgit


【解决方案1】:

根据您使用的语言,您可以从link中进行选择

例如,如果您使用的是java,则可以使用gitignore

另外https://www.gitignore.io/允许你在线创建gitingore文件,你只需要输入操作系统,IDE或者编程语言,基于它,它就会给你gitignore文件。使用它,您可以轻松地为您的项目创建 gitignore 文件。

【讨论】:

    【解决方案2】:

    2016 年 8 月更新(七年后,Git 2.9.3/Git 2.10)

    **/bin/*.dll
    

    这对任何深度都有效。


    原始答案(2009,Git 1.6)

    你试过了吗:

    **/bin/*.dll
    

    它确实适用于我的 msysgit1.6.3(在 Git 工作区的根目录中有一个 .gitignore 文件)。

    实际上上面只会忽略'x/bin/z.dll',而不是'x/y/bin/z.dll'。

    另一种语法可能是:

    **/*/bin/*.dll
    

    但这只会得到深度 3,而不是深度 2!

    因此,如果您没有太多需要忽略 *.dll 的地方,最简单的解决方案仍然是那些 'bin' 目录中的本地 .gitignore 文件...

    或覆盖主要第一深度的指令集合:

    bin/*.dll
    **/bin/*.dll
    **/*/bin/*.dll
    **/**/*/bin/*.dll
    

    等等,都在一个 .gitignore 文件中。

    【讨论】:

    • 我也在使用 msysgit 1.6.3,但模式 */bin/.dll 不起作用。我将该模式添加到根目录中的 .gitignore 中,然后从根目录尝试“git add --dry-run *.dll”,它列出了我的项目树的 bin/ 文件夹中包含的 .dll 文件。
    【解决方案3】:

    .gitignore 在 Windows 上,似乎不起作用。我正在使用 msysgit v 1.7.6 beta,它只是不能按照 .gitignor 手册页的方式工作。现在,如果我将 .gitignore 文件的内容复制到 repo 中的 $GIT_DIR/info/exclude 文件中,一切正常。

    所以,遗憾的是这不会被复制,但总比没有好。

    【讨论】:

      【解决方案4】:

      刚刚遇到类似问题,意识到:文件已经添加并签入到 git。

      如何识别差异:Git 没有将文件显示为“新”,而是“修改”。这个细节花了我不少时间……

      如果这是问题所在,只需“git rm”这些文件并重新开始。突然,.gitignore 开始按预期工作。

      【讨论】:

      • 这对我有用,但这是我在涉及 Git 时不得不做的最愚蠢的事情。
      • git rm -f -r /path #强制删除文件夹。
      【解决方案5】:

      */bin 为我工作

      我认为 */bin/ 也可以。

      【讨论】:

      【解决方案6】:

      我的文件中只有/bin,它似乎可以工作。它忽略整个文件夹(而不是其中的特定文件)

      这是截至目前的完整内容(仍在发展中)。

      .svn*
      obj/
      bin/
      *.suo
      *.user
      Log/
      log/
      *.db
      

      【讨论】:

        猜你喜欢
        • 2019-12-12
        • 1970-01-01
        • 2010-11-19
        • 2011-08-01
        • 2016-04-09
        • 1970-01-01
        • 2014-05-06
        • 2018-05-18
        • 2010-10-30
        相关资源
        最近更新 更多