Git高级——忽略文件的几种方式

初始化git仓库

首先我们创建一个git-learn目录,通过git init来初始化git仓库。

创建一个新文件,能看出来默认是Git不会追踪这个新文件的,文件出现在对应的untracked files中。

git rm

通过git add添加追踪,然后再通过git rm --cached 移除追踪。git rm用于删除某些文件,这个命令会删除Git版本库和工作目录中的文件,如果加上--cached标签,则只会删除版本库,保留工作目录。

git rm命令用于从Git仓库中移除文件或目录,它有以下几个作用

  1. 从版本控制中移除文件 :通过 ****git rm 命令可以将文件从版本控制中移除,即将文件从 Git 仓库的历史记录中删除。这样,文件在将来的提交中将不再被跟踪。
  2. 从暂存区中移除文件 :使用 git rm 命令可以将文件从 Git 的暂存区中移除,这意味着文件将不会包含在下一次提交中。
  3. 删除工作目录中的文件 :默认情况下,git rm 命令会同时删除工作目录中的对应文件,除非使用了 --cached 选项。

.gitignore文件

.gitignore是一个用来指定Git忽略哪些文件或目录的文件。它的作用是告诉Git在进行版本控制时忽略特定的文件或目录,这些文件不会被纳入Git版本控制管理里面。

.gitignore支持的功能比较强大,可以包含文件名、路径、通配符模式等规则,用于描述需要被忽略的文件或目录,这些规则可以指定具体的文件名,也可以使用通配符来匹配一类文件。

.gitignore文件通常位于Git仓库的根目录下,但也可以放置在子目录中,这样就可以只对该子目录生效。

.gitignore文件通常会提交到远程仓库,指定一些忽略的文件或目录,维护一些整个团队共享的规则,比如logs,比如一些需要在本地修改的settings

我们在.gitignore文件中添加这么一行

css 复制代码
a.go

这里会默认从.gitignore的当前目录进行查找,忽略当前目录下a.go文件的改动。

git/info/exclude

git/info/exclude文件是Git用于指定需要在本地忽略的文件或目录的文件,功能和.gitignore类似。

我们先创建一个b.go文件,然后在git/info/exclude中添加对应文件的追踪。

再次查看git status,发现已经没有这个文件的修改了。

git/info/exclude文件和.gitignore文件都用于指定需要在Git中忽略的文件或目录,但它们有一些区别

  • .gitignore适用于整个Git仓库,会被提交到远程仓库,也可以被其他开发者看到和编辑。
  • /git/info/exclude文件只对本地开发者可见,不能提交到远程仓库,用于指定个人特定的忽略规则,不会影响到团队。

git update-index --no-assume-unchanged

git update-index --no-assume-unchanged 命令用于取消对文件的 --assume-unchanged 标记,即告诉 Git 停止假设指定文件未被修改。这个命令是忽略、提交文件的大杀器,优先级比前几种方式都要高。

具体作用包括:

  1. 当文件被标记为 --assume-unchanged 后,Git 将不会检查这些文件是否发生了变化,从而提高性能。
  2. 通过取消 --assume-unchanged 标记,Git 将重新开始检查文件是否被修改,以便在必要时将其包含在提交中。

相反的命令是 git update-index --assume-unchanged,它用于将文件标记为 --assume-unchanged,告诉 Git 假设指定文件未被修改,从而避免不必要的文件状态检查。

结语

本文总结了几种忽略文件的Git方式,主要有rm.gitignoregit/info/excludegit update-index --no-assumen-unchanged几种方式,可以覆盖我们日常大部分的开发场景。

相关推荐
柏油5 小时前
MySQL InnoDB 行锁
数据库·后端·mysql
咖啡调调。5 小时前
使用Django框架表单
后端·python·django
白泽talk5 小时前
2个小时1w字| React & Golang 全栈微服务实战
前端·后端·微服务
摆烂工程师5 小时前
全网最详细的5分钟快速申请一个国际 “edu教育邮箱” 的保姆级教程!
前端·后端·程序员
一只叫煤球的猫5 小时前
你真的会用 return 吗?—— 11个值得借鉴的 return 写法
java·后端·代码规范
它说我会飞耶6 小时前
git 命令集
git
Asthenia04126 小时前
HTTP调用超时与重试问题分析
后端
小兵张健6 小时前
如何面对职场的迷茫和焦虑
程序员
极小狐6 小时前
极狐GitLab 合并请求依赖如何解决?
运维·git·ssh·gitlab·github
颇有几分姿色6 小时前
Spring Boot 读取配置文件的几种方式
java·spring boot·后端