【前端工程化指南】Git常见操作之忽略文件

默认情况下,Git管理代码版本时会对所有文件进行跟踪,但有些时候我们并不希望项目中的一些文件上传到远程仓库或公共仓库中,例如密钥,个人隐私文件等。因此Git提供了两种忽略跟踪文件的方式.gitignore文本文件与git rm命令!

.gitignore

.gitignore是一个位于仓库根目录的文本文件,它用于指定哪些文件或目录应该被Git忽略,不应该被纳入版本控制。你可以自由创建.gitignore文件并在其中列出要忽略的文件、目录或匹配模式。

例如,假设你希望忽略名为config.ini的文件和logs目录,你可以在.gitignore文件中添加以下内容:

arduino 复制代码
config.ini
/logs/

添加该.gitignore文件后会有如下效果:

.gitignore匹配规则

规则 匹配文件示例 解释
**/logs logs/debug.log logs/monday/foo.bar build/logs/debug.log 双星号(**)表示匹配任何层级的目录或文件。
*.log debug.log foo.log .log 星号(*)表示匹配零个或多个字符。
debug?.log debug0.log debugg.log 问号(?)表示匹配一个字符。
debug[0-9].log debug0.log debug1.log 方括号([])表示匹配指定范围内的单个字符。
/log log/a.txt log/b.txt 斜杠(/)表示匹配的是目录。
!a.txt b.txt c.txt d.txt 感叹号(!)用于否定一个模式,即如果文件匹配了前面的模式,但同时也匹配了后面的否定模式,那么该文件将不会被忽略。

忽略已提交的文件

如果你想忽略之前已经提交到版本库的文件,具体步骤如下:

  1. 编辑.gitignore文件,添加要忽略的文件的规则。例如,将debug.log添加到.gitignore文件中。
  2. 运行git rm --cached debug.log命令将debug.log文件从仓库中删除。--cached选项会保留本地目录文件,如果你希望将文件从仓库和本地文件系统中都删除,可以省略--cached选项。
  3. 运行git commit"命令,提交对.gitignore文件的修改和文件删除的操作。

通过这些步骤,你可以忽略并停止跟踪之前已经提交的文件,如下所示:

提交被忽略的文件

如果你想强制将一个被忽略的文件提交到仓库中,可以使用git add -f(或git add --force)选项,例如你想提交被忽略的debug.log文件,可使用以下命令:

lua 复制代码
git add -f debug.log

然而,更好的做法应该在.gitignore文件中定义一个例外规则,以便明确指定要提交的特定文件,这样做更清晰、不容易引起不必要的麻烦,如下:

lua 复制代码
*.log
!debug.log

删除忽略的文件

如果你想从工作目录中删除未跟踪的文件和目录,以清理工作区,你可以使用以下命令:

css 复制代码
git clean [-n|f|d|x]
  • -n--dry-run(可选):试运行,将显示哪些文件将被删除,并不会实际删除。
  • -f--force(可选):强制执行删除操作。
  • -d(可选):指定删除未跟踪的目录。
  • -x(可选):指定删除.gitignore忽略规则中指定的文件和目录。

点击链接或微信搜索"汪啊汪" ,关注我及时掌握最新动动态

完整手册可关注该仓库,如有帮助,麻烦给个✨

该站点也会同步更新,已满足PWA,您可安装到桌面随时访问

转载需要经过本人同意,并标明出处!

相关推荐
IT_陈寒1 小时前
Python 3.11性能翻倍秘诀:7个你从未注意过的隐藏优化点!
前端·人工智能·后端
@卞1 小时前
版本控制器 git(5)--- git 标签管理
git
学习编程的Kitty2 小时前
算法——位运算
java·前端·算法
程序猿阿伟2 小时前
《3D动作游戏受击反馈:从模板化硬直到沉浸式打击感的开发拆解》
前端·网络·3d
jsonchao2 小时前
web 菜鸟级选手,纯好玩,做了 1 个小游戏网站(我感觉挺好玩😂)
前端
Onion2 小时前
解决 iframe 中鼠标事件丢失问题:拖拽功能的完整解决方案
前端·javascript·vue.js
Sailing2 小时前
🔥🔥「别再复制正则了」用 regex-center 一站式管理、校验、提取所有正则
前端·javascript·面试
GISer_Jing2 小时前
前端知识详解——HTML/CSS/Javascript/ES5+/Typescript篇/算法篇
前端·javascript·面试
一枚前端小能手2 小时前
🔧 jQuery那些经典方法,还值得学吗?优势与式微的真相一次讲透
前端·javascript·jquery
写不来代码的草莓熊2 小时前
vue前端面试题——记录一次面试当中遇到的题(4)
前端·javascript·vue.js·面试