Git 小妙招:本地忽略文件变更,不影响远程仓库

✅ 正确做法:--assume-unchanged

复制代码
git update-index --assume-unchanged data/app.db

一条命令搞定。效果:

环境 行为
🖥️ 本地 Git 假装这个文件没有变化,git status 不显示,git add . 不会提交
☁️ 服务器 完全不受影响,正常跟踪、正常提交

🔑 原理

--assume-unchanged 是一个本地索引标记 ,只存在于当前机器的 .git 目录中,不会推送到远程仓库。所以每台机器可以独立决定要不要忽略某个文件的变更。

🔄 恢复跟踪

哪天想恢复?加个 --no

复制代码
git update-index --no-assume-unchanged data/app.db

📋 查看哪些文件被标记了

复制代码
git ls-files -v | findstr "^h"

小写 h 开头的就是被 assume-unchanged 标记的文件(Linux/Mac 用 grep 替代 findstr)。

⚠️ 注意事项

  1. git pull 有冲突时会失效 ------ 如果远程修改了这个文件,拉取时 Git 会提示冲突,需要先取消标记再处理
  2. git stashgit reset --hard 不受影响 ------ 这些操作会忽略标记,直接覆盖文件
  3. 换一台电脑需要重新标记 ------ 这是本地设置,clone 新仓库后要重新运行

🆚 和 .gitignore 的区别

.gitignore --assume-unchanged
作用范围 所有环境(会被提交) 仅当前机器
适用场景 不需要跟踪的文件(如 node_modules 已跟踪但本地不想提交变更的文件
对已跟踪文件有效? ❌ 无效 ✅ 有效
相关推荐
.Hypocritical.18 小时前
Git 全套实操|配置 /.gitignore/ 分支合并 / 冲突解决 /git stash 完整教程
git
来日方长。。。。long19 小时前
Hermes Agent橙皮书共读|第三篇:保姆级实战部署|本地/VPS从零搭建Hermes
ide·git·hermes
其实防守也摸鱼19 小时前
VS Code Git 工作树:解锁多分支并行开发新体验
数据库·git·安全·oracle·架构·自动化
ERD Online21 小时前
我们怎么设计 good first issue:让第一个 PR 两小时内合入
数据库·git·后端·开源·issue
Python私教1 天前
Codex 自动写 Commit 够安全吗?一套证据化 Git 提交流程
人工智能·git·后端
果果燕1 天前
实习笔记(一):NFS、Samba、VNC、Git、CMake、systemd、内核、交叉编译
linux·arm开发·c++·笔记·git
美味蛋炒饭.1 天前
Git 版本控制(下)
开发语言·git·学习·总结·后端开发
互联网中的一颗神经元1 天前
09 — .git 地图:打开那个隐藏文件夹
大数据·git·elasticsearch
Patrick_Wilson1 天前
你知道 git check 的故事吗
git·程序员·命令行
互联网中的一颗神经元2 天前
10 — 对象模型:.git/objects 里到底装了什么
git