Git 中移除已追踪的文件

你已经成功提交了部分文件到 Git,但 sqlserver/data/ 目录下的一些日志文件(如 .xelmachine-key)仍然被追踪或未被忽略。你想 彻底忽略整个 sqlserver/data/* 目录下的所有内容


✅ 目标

让 Git 忽略以下路径:

复制代码
sqlserver/data/*

包括已提交的文件、新生成的日志文件等。


🧰 解决方案

步骤 1:修改 .gitignore 文件

确保你的 .gitignore 文件中包含以下内容:

gitignore 复制代码
# 忽略 sqlserver 的 data 目录下所有内容
/sqlserver/data/*

或者如果你想更严格地忽略整个目录:

gitignore 复制代码
/sqlserver/data/

使用 /sqlserver/data/ 可以避免匹配其他类似路径(比如 othersqlserver/data/),因为 / 表示根目录下的路径。


步骤 2:从 Git 中移除已追踪的文件

Git 不会自动忽略已经提交过的文件。你需要手动取消追踪这些文件。

👇 执行以下命令:
bash 复制代码
git rm -r --cached sqlserver/data

这会把 sqlserver/data/ 下的所有文件从 Git 中删除索引(即取消追踪),但不会影响本地文件。


步骤 3:提交更改

bash 复制代码
git add .gitignore
git commit -m "Ignore sqlserver/data directory"

步骤 4:推送到远程仓库

bash 复制代码
git push origin master

🔍 验证是否生效

运行以下命令查看当前状态:

bash 复制代码
git status

你应该不会再看到 sqlserver/data/ 下的文件出现在 "Changes not staged for commit" 或 "Untracked files" 列表中。


📌 小贴士

  • 如果你在 .gitignore 中使用的是 sqlserver/data/*,那它只会忽略该目录下的内容,不会忽略目录本身。
  • 如果你用的是 sqlserver/data/,Git 会忽略整个目录(推荐)。
  • 如果你发现某些文件还是被追踪了,可以用下面命令查看哪些规则在起作用:
bash 复制代码
git check-ignore -v sqlserver/data/log/system_health_0_133929822242630000.xel

✅ 总结

操作 命令
修改 .gitignore 添加 /sqlserver/data/
移除缓存中的文件 git rm -r --cached sqlserver/data
提交更改 git commit -m "Ignore sqlserver/data"
推送远程 git push origin master

如果你还有其他类似问题,比如想忽略 logs/, vendor/, node_modules/ 等目录,也可以用同样的方式处理 😎

相关推荐
力Mer4 小时前
【Git】git reset 和 git revert 的用法及示例讲解
git
角砾岩队长5 小时前
Windows系统下的Git安装(2025年6月更新)
windows·git
焚膏油以继晷,恒兀兀以穷年17 小时前
git 基础命令学习
git·版本管理工具
一只游鱼17 小时前
大文件推送到git仓库
git·git lfs
2401_884810742 天前
git知识点
git
小牛itbull2 天前
从 Vercel 构建失败谈 Git 大小写敏感性问题:一个容易被忽视的跨平台陷阱
git
chainbees2 天前
Git账号配置 SSH 密钥
运维·git·ssh
Brian Xia2 天前
Lazygi - 让git操作不再困难
git
wdfk_prog3 天前
`git rm --cached`:如何让文件“脱离”版本控制
大数据·linux·c语言·笔记·git·学习·elasticsearch
Mark_Aussie3 天前
本地项目上传到Git仓库
git