git忽略已经跟踪文件的改动

在git的功能里有一项是忽略部分文件,其中常用的就是在.gitignore文件中进行修改,例如:

# 忽略vendor文件夹
vendor/
# 忽略后缀为.log的日志文件
*.log
# 忽略.env文件
.env
# 忽略.idea/目录
.idea/
# 忽略.classpath文件
.classpath

这样本地对应的文件或目录就不再进入版本库,能够忽略本地的工作环境。

不过有时候会有这种需求,忽略已追踪文件的改动

例如,工程里已经有了config.json,并且已经放到版本库,这时候我想修改下config.json让其适配自己的环境(比如设置连自己的测试数据库),但是又不想不小心push到远程仓库。

这个时候使用.gitignore设置是不起作用的。

查阅文档,发现有办法解决,如下:

本地修改不提交到远程仓库
git update-index --assume-unchanged config.json

取消本地忽略
git update-index --no-assume-unchanged config.json

查看本地仓库哪些文件被加入忽略列表
git ls-files -v

优点:本地命令,设置不会提交到remote,只需设置一次即可。
缺点:不支持正则表达式,也不支持文件夹,只支持单个文件的添加。

实测有效。

出处:www.l1mn.com

原文标题:git忽略已经跟踪文件的改动

原文地址:https://www.l1mn.com/p/6dbxo3.html

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

评论

皖ICP备2023023451号

Copyright © L1MN.COM 联系方式:l1mnfw@163.com