初始化git仓库
首先我们创建一个git-learn
目录,通过git init
来初始化git
仓库。
创建一个新文件,能看出来默认是Git
不会追踪这个新文件的,文件出现在对应的untracked files
中。
git rm
通过git add
添加追踪,然后再通过git rm --cached
移除追踪。git rm
用于删除某些文件,这个命令会删除Git
版本库和工作目录中的文件,如果加上--cached
标签,则只会删除版本库,保留工作目录。
git rm
命令用于从Git仓库中移除文件或目录,它有以下几个作用
- 从版本控制中移除文件 :通过 ****
git rm
命令可以将文件从版本控制中移除,即将文件从 Git 仓库的历史记录中删除。这样,文件在将来的提交中将不再被跟踪。 - 从暂存区中移除文件 :使用
git rm
命令可以将文件从 Git 的暂存区中移除,这意味着文件将不会包含在下一次提交中。 - 删除工作目录中的文件 :默认情况下,
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 停止假设指定文件未被修改。这个命令是忽略、提交文件的大杀器,优先级比前几种方式都要高。
具体作用包括:
- 当文件被标记为
--assume-unchanged
后,Git 将不会检查这些文件是否发生了变化,从而提高性能。 - 通过取消
--assume-unchanged
标记,Git 将重新开始检查文件是否被修改,以便在必要时将其包含在提交中。
相反的命令是 git update-index --assume-unchanged
,它用于将文件标记为 --assume-unchanged
,告诉 Git 假设指定文件未被修改,从而避免不必要的文件状态检查。
结语
本文总结了几种忽略文件的Git方式,主要有rm
、.gitignore
、git/info/exclude
、git update-index --no-assumen-unchanged
几种方式,可以覆盖我们日常大部分的开发场景。