git不追踪已提交至仓库的本地又修改文件

系列文章目录


文章目录


前言

在git 中 某些文件(如配置文件) 已提交至仓库,但是本地开发需要取修改某些文件,修改完成时不想被git 记录到(因为只在本地使用),不提交至git 仓库中,那么是否有一种方式可以临时跳过这些文件呢?


一、skip-worktree命令

1.1 命令解释:

git update-index --skip-worktree 文件 ,可以让 Git 假装看不见这个文件的本地修改 → 本地随便改,永远不会被 commit /push 提交,但文件本身还在仓库里!

bash 复制代码
git update-index --skip-worktree 文件

它给文件 打了一个本地标记,告诉 Git: 我本地会修改这个文件,但这些修改只属于我自己,不要提交到 Git 仓库。效果:

  • 本地修改 → git status 看不见
  • git add . → 不会加入暂存
  • git commit → 不会被提交
  • git push → 不会推送到远程
  • 文件依然保留在仓库里,其他人不受影响

适合你的场景:

  • 文件 a 已经在仓库里
  • 本地需要修改(启动项目用)
  • 不想提交到 Git
  • 未来仓库更新时,还能正常拉取、合并、提交

1.2 和 .gitignore 的区别:

方式 作用 是否还在仓库 已提交文件是否生效
.gitignore 忽略新文件 不在 不生效
git update-index --skip-worktree 忽略已存在文件的本地修改 100% 生效

二、使用步骤:

2.1 git base 打开

在项目根目录右键-》 Open Gig Bash here -》 输入命令

c 复制代码
 find . -name "*.yml" -not -path "*/target/*" -exec git update-index --skip-worktree {} \;

结果此时 yml 文件不会被追踪到:

2.2 恢复追踪

执行以下命令

c 复制代码
 find . -name "*.yml" -not -path "*/target/*" -exec git update-index --no-skip-worktree {} \;

2.3 目录包含和排除

bash 复制代码
find . -path "*/包含目录/*" -name "*.yml" -not -path "*/排除目录1/*" -not -path "*/排除目录2/*" -exec git update-index --skip-worktree {} \;

总结

git update-index --no-skip-worktree 可以让git 不追踪 已经被提交至git 仓库,但是本地又有修改的文件。

相关推荐
Winlifes1 天前
我给 Codex 做了一个 Git 面板:分支树、提交历史和工作区操作
git
郑州光合科技余经理2 天前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
我命由我123452 天前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
Lcr3s2 天前
Git基础之(0):如何在Ubuntu(Linux)上安装git
git
玄芯散人3 天前
【筑基·058】Git协作工作流:冲突解决和PR流程
git·版本控制·团队协作
寺中人3 天前
Git 版本控制完全入门指南:从安装到实战,提交 + 分支 + 协作 + 冲突解决全拆解
git·开发工具·版本控制·团队协作·代码管理
荔枝梅梅3 天前
新手程序员 SSH 第一课:从 Git 仓库连接失败理解 SSH 协议与密钥配置
git
玄芯散人3 天前
【筑基·057】Git代码时光机:版本控制入门到分支管理
git·版本控制·嵌入式开发
szephyr3 天前
Git 分支管理实战:feature/release/hotfix 怎么用才不乱
git·分支管理·团队协作·工作流·hotfix
一木 之林3 天前
手搓家庭服务器:二手装机、Docker部署、端口映射与frp内网穿透
服务器·人工智能·git·编辑器