取消当前的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。
相关推荐
chhanz7 小时前
git/github入门基操(终端版)
git·github
林晓lx9 小时前
使用Git钩子+ husky + lint语法检查提高前端项目代码质量
前端·git·gitlab·源代码管理
诸葛思颖10 小时前
一个本地 Git 仓库关联多个远程仓库
git
StarShip13 小时前
git commit --amend 之后,想要修改为git commit , 如何处理?
git
dnpao18 小时前
在服务器已有目录中部署 Git 仓库
运维·服务器·git
__Witheart__18 小时前
Git 如何从某个 commit 新建分支
git
Klaus_Wei1 天前
git 高级命令模式典型应用--“同步云端 + 清理垃圾分支”的一键命令
git·git高级用法·git同步云端·git清理垃圾分支
妙娲种子1 天前
配置git/创建第一个智能相册保存快照
git
what_20181 天前
git一个账号在两台电脑登录 出现不同用户名
git
困鲲鲲1 天前
ROS2系列 (13) : 常用Git指令入门(本地Git)
git·ros2