12

我一直在研究网络和有关 .gitignore 文件的各种文档。我有点像 Unix/Terminal(使用 Mac OS X)的 n00b,我无法终生弄清楚如何忽略文件夹的内容(任何类型的内容,无论是文件还是另一个文件夹,不管它有多深)。

我正在开发一个在一致的文件结构中生成图像文件的项目,除了我们遇到关于用户权限的合并冲突。我想忽略包含生成图像的文件夹,这样我们就可以避免任何进一步的拉扯,不​​得不在每次拉取的基础上调整权限。我只是无法让 .gitignore 文件正常工作,所以我需要找出文件夹内容匹配的正确模式。我希望它足够通用,因为它可以轻松包含整个站点(因此,如果任何文件夹包含特定的文件夹名称,它将忽略其内容)。

我试过了:

# Images
resample/
resize/
min/

和...

# Images
resample/*
resize/*
min/*

和...

# Images
*/resample/*
*/resize/*
*/min/*

还有更多结果不理想的组合。我也从来没有得到foldername/**/*过工作的模式。任何有关此问题的帮助将不胜感激!

4

2 回答 2

26

感谢之前的海报的帮助。在进一步研究之后,我发现了如何正确实施新.gitignore规则。问题是之前正在跟踪图像,所以我不得不删除对文件中.git/index文件的引用,就像这样......

// Remove all tracked files from the index
// (doesn't remove the file, just the reference)
git rm -r --cached .

// Add all the files again
// (files and folders specified by .gitignore aren't added to the index)
git add .

// Commit to save changes
git commit -am "gitignore update"
于 2010-10-13T03:50:10.920 回答
9

您正在寻找gitignore

gitignore 文件指定了 git 应该忽略的故意未跟踪的文件。请注意,所有 gitignore 文件实际上只涉及 git 尚未跟踪的文件;

如果您的文件或文件夹在存储库中,则必须将其从存储库中删除才能忽略。

还要注意你的模式是否区分大小写。

假设这些文件夹当前不受版本控制,您的第一个列表应该可以工作。

# Images
resample/
resize/
min/
于 2010-10-12T23:41:00.290 回答