Git中的ignore忽略文件

1.背景

在项目中,并不是所有文件都要进行版本追踪(如日志文件、node_modules等)。使用.gitignore是最简单配置git忽略文件版本追踪的方式。

2.怎么用

(1)在项目根目录创建 .gitignore 文件。(注意:不一定非要放在项目根目录,这样写是为了让项目下的所有文件都生效)
(2)用文本编辑器打开文件,进行配置:

  • 每项配置独占一行。
  • 每行的内容可以是:文件/目录 的名称、路径 或 它们的模式匹配。

3.模式匹配

  • 空行不匹配任何文件,因此常用作分隔符(以方便阅读)
  • #用于注释,\表示转义(如对a!bc.txt,需改为a\!bc.txt
  • * 可以匹配任何字符(0或多次),?可以匹配任何字符(1次)。(注意:它们都不可以匹配/
  • 用于分隔目录:
    • /在开头时,表示从项目根目录开始匹配。否则,所有级都将匹配。举例:/abc只能匹配/abc,不能匹配/x/abc/x/y/abc
    • /在末尾时,只匹配目录,否则,则同名的目录和文件都将匹配。举例:/abc/只能匹配/abc目录,不能匹配/abc文件。abc/能匹配/abc//x/abc//x/y/abc/等,不能匹配/abc/x/abc
  • 原先被排除的文件,使用!模式后该文件将会重新被包含。但如果了该文件的父级目录被排除了,那么使用!也不会再次被包含(这个细节要特别注意)
  • []通常用于匹配一个字符列表,如:a[mn]z可匹配amzanz
  • **用于匹配多级目录,如 a/**/b可匹配"a/b","a/x/b","a/x/y/b"

4.示例

4.1 忽略所有文件

在这里插入图片描述

4.2 忽略所有文件夹

在这里插入图片描述

4.3 忽略public文件夹下的所有文件,除了favicon.ico文件

在这里插入图片描述

4.4 只保留public目录下的a{一个字符}z.后缀名的所有文件

在这里插入图片描述

5.ignore规则检查

git check-ignore -v {文件或目录路径};有输出则表示这个 {文件或目录路径} 或目录是被忽略的(如下图)
在这里插入图片描述

6.遇到gitignore失效怎么办

6.1 文件已经被Git跟踪

如果在设置.gitignore之前,文件已经被Git跟踪并提交过一次,那么.gitignore对这个文件将不起作用。需要先使用以下命令将文件从Git仓库中移除:

git rm --cached <file>

6.2 .gitignore文件位置不正确

请确保.gitignore文件位于Git项目的根目录下,并且文件名为.gitignore

6.3 文件路径错误

请确认.gitignore中指定的文件路径或模式是正确的。可以使用相对路径或绝对路径进行指定。

6.4 缓存未清除

如果之前的缓存没有清除,.gitignore文件的更改可能不会立即生效。可以尝试清除Git缓存:

git rm -r --cached .
git add .
git commit -m "Apply .gitignore"

6.5 使用git check-ignore命令

这个命令可以帮助你检查Git是否忽略了特定的文件或路径:

git check-ignore -v <file-or-directory-path>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值