【发布时间】:2016-03-24 15:09:48
【问题描述】:
我知道有很多这样的问题,但没有人解决我的问题。我想要一些非常简单的东西 - 忽略特定文件夹下的所有文件和文件夹,除了一个文件。这是我尝试的:
#Ignore
public/typings/*
#Allow
!public/typings/browser/ambient/jquery/jquery.d.ts
...但该文件仍被忽略。
有什么建议吗?
【问题讨论】:
标签: gitignore
我知道有很多这样的问题,但没有人解决我的问题。我想要一些非常简单的东西 - 忽略特定文件夹下的所有文件和文件夹,除了一个文件。这是我尝试的:
#Ignore
public/typings/*
#Allow
!public/typings/browser/ambient/jquery/jquery.d.ts
...但该文件仍被忽略。
有什么建议吗?
【问题讨论】:
标签: gitignore
似乎! 仅在文件位于同一文件夹中时才有效。一种可能的解决方法是嵌套相同的语句,直到您到达最终文件。有点乱,但它的工作原理。
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
【讨论】:
.gitignore 现在看起来像你的例子。
如果该文件是在您将其放入 git ignore 之前在之前的提交中添加的,则您的 .gitignore 可能无法正常工作。几天前我遇到了同样的问题。由于这篇文章,我解决了这个问题:
希望对你有帮助
编辑:
【讨论】:
我一直在努力解决这个问题,让我分享一个对我有用的过程:
1) 将顶级文件夹“abc/”添加到您的 .gitignore 2) 假设在“abc/”中还有“def/”和“jkl/”文件夹。如果你想保留“jkl/”的内容,你可以这样做:
git add -f jkl/*.php
好的!现在 "jkl/" 中带有 .php 扩展名的所有内容都将被 git 跟踪,即使在下一次提交中也是如此,而不会让人头疼!
我发现这是适合我的情况的正确解决方案,因为我真的疯了,试图了解 gitignore 如何扫描文件和目录。
【讨论】: