【问题标题】:.gitignore - Ignore everything in a directory except one file.gitignore - 忽略目录中除一个文件之外的所有内容
【发布时间】:2016-03-24 15:09:48
【问题描述】:

我知道有很多这样的问题,但没有人解决我的问题。我想要一些非常简单的东西 - 忽略特定文件夹下的所有文件和文件夹,除了一个文件。这是我尝试的:

#Ignore
public/typings/*

#Allow
!public/typings/browser/ambient/jquery/jquery.d.ts

...但该文件仍被忽略。

有什么建议吗?

【问题讨论】:

    标签: gitignore


    【解决方案1】:

    似乎! 仅在文件位于同一文件夹中时才有效。一种可能的解决方法是嵌套相同的语句,直到您到达最终文件。有点乱,但它的工作原理。

    public/typings/*
    !public/typings/browser
    public/typings/browser/*
    !public/typings/browser/ambient
    public/typings/browser/ambient/*
    !public/typings/browser/ambient/jquery
    public/typings/browser/ambient/jquery/*
    !public/typings/browser/ambient/jquery/jquery.d.ts
    

    【讨论】:

    • 是的,谢谢,伙计。实际上@DanieloFair 用答案指出了我的讨论,但是是的,我的.gitignore 现在看起来像你的例子。
    • 老实说,我认为这应该是公认的答案,因为它提供了直接的解决方案。
    【解决方案2】:

    如果该文件是在您将其放入 git ignore 之前在之前的提交中添加的,则您的 .gitignore 可能无法正常工作。几天前我遇到了同样的问题。由于这篇文章,我解决了这个问题:

    Post int randallkent

    希望对你有帮助

    编辑:

    在这里找到解决方案:gitignore directory exception not working

    【讨论】:

    • 你也读过这个吗? stackoverflow.com/questions/16678936/…如果这不起作用,恐怕我没有更多的解决方案。对不起男人
    • 噢……非常感谢!这有帮助。单文件解决方案看起来有点奇怪,但至少有效:)
    • @DanieloFair 所以你的答案的第一部分是没有必要的?只是为了做第二个链接中指示的事情?
    【解决方案3】:

    我一直在努力解决这个问题,让我分享一个对我有用的过程:

    1) 将顶级文件夹“abc/”添加到您的 .gitignore 2) 假设在“abc/”中还有“def/”和“jkl/”文件夹。如果你想保留“jkl/”的内容,你可以这样做:

    git add -f jkl/*.php
    

    好的!现在 "jkl/" 中带有 .php 扩展名的所有内容都将被 git 跟踪,即使在下一次提交中也是如此,而不会让人头疼!

    我发现这是适合我的情况的正确解决方案,因为我真的疯了,试图了解 gitignore 如何扫描文件和目录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      • 2010-11-02
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 2013-09-26
      • 1970-01-01
      相关资源
      最近更新 更多