如何让 Git 忽略一些指定的文件呢?
我的意思是让 Git 识别某些格式的文件,然后自主不跟踪它们(不要总提示 XXX 还没加入暂存区域,要不要加入啊?要不要跟踪啊?要不要?要不要嘛?!!)
现在在工作目录中添加 1.temp、2.temp 和 3.temp 三个文件。
我们不希望后缀名为 temp 的文件被追踪,可 Git 却像个烦人的小妖精:
(要不要嘛,要不要嘛,嗯,要嘛,要嘛~~~)
让 Git 闭嘴的办法是有的,需要你在工作目录创建一个名为 .gitignore 的文件。
然后你发现 Windows 压根儿不允许你在文件管理器中创建以点(.)开头的文件(Linux 和 Mac 我们都习惯在终端下工作,这里就不啰嗦):
Windows 需要在命令行窗口下才能创建以点(.)开头的文件,执行 echo *.temp > .gitignore 命令,创建一个 .gitignore 文件,并让 Git 忽略所有 .temp 后缀的文件:
再看看 Git 的状态:
好了,Git 已经忽略了所有的 *.temp 文件(你还可以把 .gitignore 文件也一并忽略)。
.gitignore 语法规范
.gitignore 可以使用标准的 glob 模式匹配(glob 模式是指 shell 所使用的简化了的正则表达式):
- 所有空行或者以注释符号 # 开头的行都会被 Git 忽略;
- 星号(*)匹配零个或多个任意字符;
- [abc] 匹配任何一个列在方括号中的字符;
- 问号(?)只匹配一个任意字符;
- [a-z] 匹配所有在这两个字符范围内的字符;
- 匹配模式最后跟反斜杠(/)说明要忽略的是目录;
- 匹配模式以反斜杠(/)开头说明防止递归;
- 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
其实语法参考这篇文章即可:Python3 如何优雅地使用正则表达式
嗯嗯,这里有一个十分详细的针对数十种项目及语言的 .gitignore 文件列表,拿走,不谢 -> 传送门