是什么?
用于指定哪些文件或目录,应该在git
中被忽略的配置文件。
有什么用?
避免将不必要的文件添加到版本管理系统中,比如前端的node_modules
目录,该目录包含大量文件,如果将其添加到版本管理系统中,会使仓库变的庞大,不利于仓库的管理。
如何使用?
- 在
git
根目录下,创建名为.gitignore
的文件 - 将需要忽略的文件或者目录写入.gitignore文件中
node_modules/ # 忽略名为node_modules的文件夹
log.txt # 忽略名为log.txt文件
匹配规则
/
开头,表示根目录。/
结尾,表示文件夹。
node_modules
开头没有/
,也就没有被限制在根目录。
结尾没有/
,也就没有被限制为文件夹。
所以这条规则表示匹配任何层级下的node_modules
文件或文件夹。
node_modules/
开头没有/
,也就没有被限制在根目录。
结尾有/
,表示被限制为文件夹。
所以这条规则表示匹配任何层级的node_modules
文件夹。
/node_modules
开头有/
,表示被限制在根目录。
结尾没有/
,也就没有被限制为文件夹。
所以这条规则表示仅匹配根目录下的node_modules
文件或文件夹。
/node_modules/
开头有/
,表示被限制在根目录。
结尾有/
,表示被限制为文件夹。
所以这条规则表示仅匹配根目录中的node_modules
文件夹。
注意事项
更新.gitignore的场景1
文件/文件夹之前被忽略了,现在不想被忽略,直接更新.gitignore
即可。
# .gitignore
logs
# 将logs从.gitignore中删除即可
更新.gitignore的场景2
文件/文件夹之前没被忽略,现在想忽略。
# .gitignore
/test
# 加入/test了,期望忽略根目录下的test文件或文件夹,但是却发现无效
这是因为,git
对于已经被track
的内容,后续直接修改.gitignore
是无效的,需要进行以下操作进行重置。
- git rm -r --cached .
- 修改.gitignore,加入你期望忽略的/test
- git add .
- git commit -m '更新.gitignore'
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。