取消当前的git commit操作

一、取消最近一次提交(未推送到远程仓库)

使用 git reset

  1. 保留工作目录、暂存区 (即只取消提交)不变色
git 复制代码
git reset --soft HEAD~1

这会将当前分支回退到上一个提交,但保留所有更改在暂存区。

  1. 保留工作目录 (即取消提交、暂存区)变为红色
git 复制代码
git reset --mixed HEAD~1

这会将当前分支回退到上一个提交,暂存区不会被保留。

  1. 文件不保留 (即取消提交、暂存区、删除文件)文件丢失
git 复制代码
git reset --hard HEAD~1

这会将当前分支回退到上一个提交,并且丢弃工作目录中的所有更改。

二、取消已经推送到远程仓库的提交

如果你已经将提交推送到远程仓库,需要更加小心,因为这可能影响其他开发者。以下是一些常用方法:

  1. 使用 git revert

git revert 会创建一个新的提交,撤销指定的提交。这是一个安全的方式,不会影响提交历史。

git 复制代码
git revert <commit>

这将生成一个新的提交,用于撤销指定的提交。

三、总结

  • 取消本地提交 :使用 git reset(--soft、--mixed、--hard)根据需要保留或丢弃更改。
  • 取消已经推送的提交 :使用 git revert 来创建一个新的撤销提交,或者在确保不会影响其他开发者的情况下使用 git reset 结合 git push --force。
相关推荐
Selicens17 小时前
git批量删除本地多余分支
前端·git·后端
闲云一鹤2 天前
Git LFS 扫盲教程 - 你不会还在用 Git 管理大文件吧?
前端·git·前端工程化
vibecoding日记5 天前
为什么我就想要「线性历史 + Signed Commits」,GitHub 却把我当猴耍 🤬🎙️
git·编程工具
程序员小崔日记5 天前
如何将代码轻松上传到 Gitee?Git 使用全攻略!
git·gitee·上传
Bigger6 天前
为什么你的 Git 提交需要签名?—— Git Commit Signing 完全指南
git·开源·github
DianSan_ERP7 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
红豆子不相思7 天前
Tomcat 环境搭建与集群实战
服务器·git·tomcat
杰哥技术分享7 天前
Git 仓库迁移技术文档:从 CODING.net 迁移至腾讯云 CNB
git
梅孔立7 天前
Ansible 100 台服务器一键管控实战 进阶版
服务器·git·ansible