我的git存储库中有一个img文件夹。我想使用.gitignore来排除文件夹中的图像。
我使用cd <file path>
输入该文件夹和mkdir .gitignore
。但是当我add
git时,图像不会被排除在外。我需要添加什么才能将其排除在add
之外?
答案 0 :(得分:4)
您的.gitignore
文件应位于存储库的根目录中以开始。管理这种方式变得更容易。然后,您可以在子目录中放置单独的.gitignore
文件,您需要覆盖根.gitignore
文件中定义的模式。
要排除img
目录,只需将此行添加到.gitignore
:
img/
如果您想排除不区分大小写的,您可以写一下:
[Ii]mg/
如果图案以斜线结尾,则会将其删除 以下描述,但它只会找到一个匹配 目录。换句话说,
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