Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gitignore排除整个目录树中文件的所有外观_Git_Gitignore - Fatal编程技术网

Gitignore排除整个目录树中文件的所有外观

Gitignore排除整个目录树中文件的所有外观,git,gitignore,Git,Gitignore,我有一个目录,有许多子目录,深度可变,总是在增长。我只想保留一个特定的文件。我如何告诉.gitignore忽略这些目录和子目录中的所有文件,除了那一个 确切地说,我拥有的是一个报表目录,我每天都在其中存储许多报表。每个新报告都会创建一个新的子目录,其中包含一个变量名、文件和子目录。我只想保留文件“foo” 报表目录 月份 每日小时报告 文件1 文件2 福 档案 另一个目录\u我\u完全\u忽略 每日小时报告 文件1 文件2 福 档案 另一个目录\u我\u完全\u忽略 月 每日小

我有一个目录,有许多子目录,深度可变,总是在增长。我只想保留一个特定的文件。我如何告诉
.gitignore
忽略这些目录和子目录中的所有文件,除了那一个

确切地说,我拥有的是一个报表目录,我每天都在其中存储许多报表。每个新报告都会创建一个新的子目录,其中包含一个变量名、文件和子目录。我只想保留文件“foo”

  • 报表目录
    • 月份
      • 每日小时报告
        • 文件1
        • 文件2
        • 档案
        • 另一个目录\u我\u完全\u忽略
      • 每日小时报告
        • 文件1
        • 文件2
        • 档案
        • 另一个目录\u我\u完全\u忽略
      • 每日小时报告
等等

我试过很多东西。最后一个在哪里

/REPORTDIRECTORY/**/*
!foo

没有成功

我开始相信我在使用双通配符时遇到了问题,因为如果我输入gitignore:

/REPORTDIRECTORY/**/ANOTHER_DIRECTORY_I_COMPLETELY_IGNORE/

“另一个目录完全忽略”不会被忽略:(

我正在为Windows使用Git版本
1.8.1.2-preview20130201
。我正在为Windows使用
SmartGit
作为GUI(版本4.5),但我认为GUI应该不重要,因为
。gitignore
是由Git直接解析的。状态双星号通配符应该可以工作


是我做错了什么,还是因为
.gitignore
解析器?

是否有可能需要更新到最新版本?根据,
***/
模式仅在1.8.2之后才受支持

忽略版本文件

存储库中的某些文件已进行版本控制(即,它们不能 git被忽略),经常被更改,但很少提交 是各种经过编辑的本地配置文件,但应 永远不要向上游承诺

Git允许您通过假设这些文件没有更改来忽略它们 是通过运行git更新索引来完成的——假设未更改 path/to/file.txt命令。一旦将文件标记为这样,git将 完全忽略该文件上的任何更改;当 运行git status或git diff,也不会提交它们

要使git再次跟踪文件,只需运行git更新索引 --不,假定路径/to/file.txt未更改

这是直接从github的

然后,您可以根据需要偶尔提交一个文件,但通常仍然忽略这些更改

在您试图部分忽略的文件夹中添加了一个
.gitignore
文件,这似乎是一个合理的解决方案

文件夹中
.gitignoe
文件的内容可能只包含一个条目:

*/
如果要忽略的是所有文件夹

REPORTDIRECTORY/**/ANOTHER_DIRECTORY_I_COMPLETELY_IGNORE
*/