gitignore以及如何忽略公共目录名称及其内容

时间:2010-10-12 23:24:38

标签: git gitignore

我一直在研究关于.gitignore文件的网络和各种文档。我对Unix /终端(使用Mac OS X)有点n00b,我不能为我的生活找出如何忽略文件夹的内容(任何类型的内容,无论是文件还是其他文件夹,不管它有多深。)

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

我试过了:

# Images
resample/
resize/
min/

和...

# Images
resample/*
resize/*
min/*

和...

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

还有更多组合效果不理想。我从未得到过foldername/**/*模式。关于这个问题的任何帮助将非常感谢!

2 个答案:

答案 0 :(得分:25)

感谢以前的海报帮助他们。经过深入研究后,我发现了如何正确实施新的.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"

答案 1 :(得分:8)

您正在寻找gitignore

  

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

如果您的文件或文件夹位于存储库中,则必须从存储库中删除它才能使其可以忽略。

还要注意模式中的区分大小写。

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

# Images
resample/
resize/
min/