取消缓存
# 重置工作区和暂存区(会丢失所有未提交的修改)git reset --hard
# 或者如果你只想丢弃 stash 带来的修改,但保留其他修改:git checkout -- . # 丢弃所有未暂存的修改
git reset . # 取消所有暂存的修改
移除误上传文件
当你使用 git rm --cached 时,实际上是从 Git 的 暂存区(索引)中删除文件 / 文件夹 ,但 保留工作目录中的实际文件。这意味着这些文件将不再被版本控制,但会保留在你的本地文件系统中。
# 设置移除的缓存
git rm --cached docker-compose.yml
# .gitignore 添加移除的文件
docker-compose.yml
# 移除整个文件夹
git rm --cached -r node_modules/
# 移除 dist/ 和 build/ 目录
git rm --cached -r dist/ build/ logs/
# 移除所有 .tmp 文件
git rm --cached **/*.tmp
# 提交
git commit -m "chore: 停止跟踪 docker-compose.yml,将其移入 .gitignore"
文件未保存,但是提交了 commit,未 push
# 撤销最近一次的 commit,但保留修改
git reset --soft HEAD~1 保留修改(暂存区不可见)
git reset --mixed HEAD~1 保留修改(重放暂存区)# 或指定提交
git reset --soft <commit_hash>
# 撤销最近一次的 commit,且不保留修改
# --hard 彻底删除 commit 和所有修改 无法恢复,慎用!git reset --hard HEAD~1
# 或指定提交
git reset --hard <commit_hash>
# 撤销最近 3 次 commit
git reset --hard HEAD~3
正文完
发表至: 运维
2025-11-09