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几种方式,可以覆盖我们日常大部分的开发场景。

相关推荐
NiNg_1_2343 小时前
SpringBoot整合SpringSecurity实现密码加密解密、登录认证退出功能
java·spring boot·后端
Chrikk4 小时前
Go-性能调优实战案例
开发语言·后端·golang
幼儿园老大*4 小时前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue4 小时前
go语言连续监控事件并回调处理
开发语言·后端·golang
杜杜的man4 小时前
【go从零单排】go语言中的指针
开发语言·后端·golang
但老师5 小时前
Git遇到“fatal: bad object refs/heads/master - 副本”问题的解决办法
git
秃头女孩y5 小时前
git创建分支
git
customer086 小时前
【开源免费】基于SpringBoot+Vue.JS周边产品销售网站(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·java-ee·开源