尽管尝试了这篇文章和其他文章中的各种建议(例如Gitignore 不工作和gitignore 不工作 - 被忽略?)我无法让 git 忽略我的 .gitignore.txt 文件中包含的文件/文件夹。
我应该强调,与许多先前的答案不同,这些答案解决了先前已提交的文件/目录将无法跟踪的问题,在我的情况下,我在进行第一次提交之前遇到了这个问题(即只运行了git init
跟随由git status
)。
还有许多其他有希望的建议,包括:
- 文本文件编码必须是 ANSI 而不是 UTF,例如 Encoding -> Notepad++ 中的 ANSI
- Windows 的 EOL 转换,例如 Edit -> EOL Conversion -> Notepad++ 中的 Windows
- .gitignore.txt 中的项目没有前导或尾随空格
- 定义文件夹时没有前导“/”
但没有一个适用或解决我的问题。
在尝试了创建 .gitignore.txt 文件的不同方法之后,我设法弄清楚如何让它工作,尽管我不能说我明白为什么。知道是否有人可以提供解释会很有趣。
为了那些可能还发现以前的答案没有解决他们的问题的人的利益,我将描述我尝试过的内容,无效的内容以及有效的内容。希望通过这样做也可以阐明原因。请注意,我使用的是 Windows 10。
尝试 #1(失败)
在 Windows 资源管理器中创建新的 txt 文件:
- (在项目文件夹中)右键->新建->文本文档
- 将文件名更改为“.gitignore”
- 在记事本++中打开文件,输入的文件/目录名称被忽略
- 编码 -> ANSI [注 1],保存更改
我跑了git status
,但我想忽略的文件/文件夹显示为未跟踪。我在 Windows 资源管理器中检查了文件属性。正如预期的那样,文件名是“.gitignore”,文件类型是“文本文档(.txt)”。
注1:
一些贡献者表示编码必须是 ANSI(而不是 UTF)。在记事本++中,我发现无论我执行编码-> ANSI,还是编码-> 转换为ANSI + 保存,关闭文件,然后重新打开它(在记事本++ 中),当我检查编码时,它总是报告UTF- 8. 最终起作用的 .gitignore.txt 文件也是如此。
尝试#2(失败)
在 Notepad++ 中创建新的 txt 文件:
- 在记事本++中创建了新文件,输入了要忽略的项目
- 另存为“.gitignore.txt”,将“保存类型”从“普通文本文件”(默认)更改为“所有类型”,并取消勾选“附加扩展名”框(默认勾选)。
我跑了git status
,和以前一样,所有文件/目录都列在未跟踪的文件下。和以前一样,文件名是“.gitignore”,文件类型是“文本文档(.txt)”。
尝试#3(成功)
在 Notepad++ 中仍然打开相同的文件 (.gitignore.txt):
- 另存为“.gitignore”为“另存为类型”选择了“普通文本文件”,这会自动勾选“附加扩展名”框
我注意到创建的文件在 Windows 资源管理器中似乎没有名称。我检查了文件的属性:文件名字段为空白,文件类型为“文本文档(.gitignore)”。在 Windows 资源管理器(查看 -> 文件扩展名)中勾选“文件扩展名”后,“无名”文件显示“.gitignore”扩展名。
我跑了git status
,这次我想忽略的文件/文件夹没有被列为未跟踪的文件 -成功!
在 Notepad++ 中打开文件我注意到编码是 UTF-8,并且文件名被标识为“.gitignore”(与 Windows 资源管理器不同)。
所以看起来 txt 文件的创建方式很微妙。也许这是 Windows 独有的特性?