git 忽略文件的四种方式
Git 提供了四种方法来忽略文件,分别适用不同情况,如下:
1、全局忽略
忽略规则由本机所有仓库共用,配置方法如下:
编辑 ~/.gitconfig
文件,
[user] name = yourname email = yourname@email.com [gui] encoding = utf-8 [core] excludesfile = ~/.gitignore
最后两行是新增的,用户设置全局忽略的配置文件目录,本例子是存放于 ~/.gitignore
下,可以改成其他路径。
或通过命令行添加配置:
git config --global core.excludefile ~/.gitignore
2、单个仓库下忽略(远程共用)
单个仓库下忽略,同时同步该设置至远程仓库,与其他克隆仓库共用;这个方法也是最常用的,配置方法是在仓库的根目录下新建 .gitignore
文件,在文件里配置忽略规则,同时把 .gitignore
文件加入版本管理。
比如:
# phpstorm project files .idea .tags .tags_sorted_by_file
3、单个仓库下忽略(本机使用)
单个仓库下忽略,不会同步该设置至远程仓库,只在本机起作用;配置方法是直接编辑仓库根目录下的.git/info/exclude
文件,把要忽略的规则直接写入,这个方法只在本机当前仓库起效,不会对其他的克隆仓库起效。
配置文件规则参考 中文文档。
比如:
# git ls-files --others --exclude-from=.git/info/exclude # Lines that start with '#' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if you want to use them): # *.[oa] # *~ read.md
4、忽略已跟踪文件的改动(本机使用)
上诉1,2,3方案都是适用于未跟踪的文件改动,而对于已跟踪文件的改动并不适用,好在针对这种情况 Git 也提供了我们方法去忽略。
#忽略跟踪(提交代码时,忽略某一个文件不提交,即某个文件不被版本控制) git update-index --assume-unchanged FLIE #FILE是目标文件路径 #恢复跟踪 git update-index --no-assume-unchanged FLIE #FILE是目标文件路径
不过如果执行 git checkout
和git reset
的时候仍然会影响到这些文件,并把内容恢复到被跟踪的内容(再次修改仍然不会被跟踪)。
如果忽略的文件多了,可以使用以下命令查看忽略列表
git uls-files -v | grep '^h\ '
提取文件路径,方法如下
git ls-files -v | grep '^h\ ' | awk '{print $2}'
所有被忽略的文件,取消忽略的方法,如下
git ls-files -v | grep '^h' | awk '{print $2}' |xargs git update-index --no-assume-unchanged
更多update-index 参考:https://www.cnblogs.com/wt645631686/p/10007328.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2017-10-27 PHP 变量类型的强制转换 & 创建空对象