Git如何忽略掉已经传到仓库的文件

2023年2月16日服务端评论55,533字数 708阅读2分21秒阅读模式

虽然之前最后有提醒,但是还是不够清楚,所以补充说明下,这个方法忽略的是缓存区及远程仓库的文件或者文件夹,也就意味着只有你本地会保留这个文件或者文件夹。同事拉取远程仓库时也会删除他本地工作区的文件或者文件夹,所以要谨慎使用。

最近在开发一个项目时,用到Git来管理代码,里面有一个数据库的配置文件。

因为要在多个环境开发,数据库的配置是不同的,如果我每次提交都带上它,当别人拉取仓库时,会覆盖掉它本地的数据库配置,就需要重新修改,显示这很不科学。

所以我们最后决定,初始化项目的时候提交这个数据库配置文件(这样其他人初始化项目时,不会少一个文件,减少了沟通成本),然后将这个文件加入.gitignore文件,之后不再提交。

实际操作发现,.gitignore只对从来没有commit过的文件起作用,因为之前提交过这个数据库配置文件,所以默认提交的话,还是会更新这个文件。

这个时候,就需要考虑如何忽略掉这个文件,让它不再被上传到仓库。

一. 忽略文件夹

如果要删除目录下所有文件包括子目录中的,可以用这段:

git rm -r --cached directory_name

二. 忽略文件

如果要忽略掉单个文件,比如我们想要忽略掉config文件夹下的database.php,就可以这样执行命令:

git rm --cached config/database.php	# 版本库中移除这个文件
# 然后在 .gitignore 中添加这个文件,用于忽略
git commit -m config/database.php
git push

这样就不会再在远程仓库更新这个文件了。

其他成员pull,working directory中对应的文件会删除,所以如果文件重要,要提前备份。

匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定