如何在文件夹中使用.gitignore?

时间:2016-08-19 08:51:00

标签: git

我的git存储库中有一个img文件夹。我想使用.gitignore来排除文件夹中的图像。

我使用cd <file path>输入该文件夹和mkdir .gitignore。但是当我add git时,图像不会被排除在外。我需要添加什么才能将其排除在add之外?

4 个答案:

答案 0 :(得分:4)

您的.gitignore文件位于存储库的根目录中以开始。管理这种方式变得更容易。然后,您可以在子目录中放置单独的.gitignore文件,您需要覆盖.gitignore文件中定义的模式。

要排除img目录,只需将此行添加到.gitignore

img/

如果您想排除不区分大小写的,您可以写一下:

[Ii]mg/

来自documentation

  

如果图案以斜线结尾,则会将其删除   以下描述,但它只会找到一个匹配   目录。换句话说,foo/将匹配目录foo和路径   在它下面,但不匹配常规文件或符号链接   foo

另外,您可以使用git-ls-files命令列出存储库中当前被忽略的文件:

git ls-files --ignored --others --exclude-standard

其中--exclude-standard选项告诉Git考虑.git/info/exclude文件中定义的模式,存储库的.gitignore文件(在根目录和所有子目录中)以及作为全局.gitignore文件。

答案 1 :(得分:4)

.gitignore文件仅仅因其存在而没有任何效果。空.gitignore文件只是一个空文件,仅此而已。

Git读取.gitignore文件的内容,并使用其中包含的模式来确定要在repo中放入哪些文件以及要忽略哪些文件。详细了解the format of .gitignore files

与此问题的其他答案相反,您可以在您的存储库的任何目录中都有.gitignore文件,而不仅仅是在根目录中。

当它决定如何处理新文件(跟踪或忽略它)时,它会合并来自多个gitignore来源的信息:

  • 命令行;
  • 与文件位于同一目录中的.gitignore文件和位于repo内的父目录中的.gitingore文件;
  • 本地存储库忽略文件(未推送到远程存储库)$GIT_DIR/info/exclude;
  • ~/.gitconfig中指定的全局忽略文件;它适用于用户的所有本地存储库。

回到具体情况,如果您想告诉Git忽略img目录中的文件,可以将*放在文件img/.gitignore中。

另一个选择是将<path-to-img>/*放在repo根目录的.gitignore文件中。将<path-to-img>替换为从repo根目录到img文件的实际路径。

文件.gitignore的内容仅由git add使用。如果文件已在存储库中,则在.gitignore中添加与其名称匹配的模式并不会使Git从现在开始忽略它。必须手动从repo中删除(并提交删除),否则Git将继续跟踪其内容。

在您的情况下,要运行的命令是这样的:

cd <path-to-img-directory>
echo "*" >> .gitignore
git rm *
git add .gitignore
git commit

答案 2 :(得分:0)

您应该在git存储库中创建一个.gitignore文件(将文件放在根文件夹中 - 以这种方式管理所有未跟踪文件/文件夹更容易)并将img文件夹添加到该文件中。 / p>

创建.gitignore文件

打开文件并添加以下行:

img/

到文件。

答案 3 :(得分:0)

您需要编辑文件夹中的.gitignore文件并添加*以指定应忽略其中的所有文件。 Related question