头图

是什么?

用于指定哪些文件或目录,应该在git中被忽略的配置文件。

有什么用?

避免将不必要的文件添加到版本管理系统中,比如前端的node_modules目录,该目录包含大量文件,如果将其添加到版本管理系统中,会使仓库变的庞大,不利于仓库的管理。

如何使用?

  1. git根目录下,创建名为.gitignore的文件
  2. 将需要忽略的文件或者目录写入.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是无效的,需要进行以下操作进行重置。

  1. git rm -r --cached .
  2. 修改.gitignore,加入你期望忽略的/test
  3. git add .
  4. git commit -m '更新.gitignore'

热饭班长
3.7k 声望434 粉丝

先去做,做出一坨狗屎,再改进。