当前位置: 首页 > news >正文

git 操作 已经 commit 但是没有 push 怎么办

前言:

在操作commit后发现提交错了分支,直接切换分支是不行的,只能先取消commit的代码才能切换分支,因此记录一下git的操作

如果你已经执行了 git commit 但还没有进行 git push,可以通过以下几种方式撤回或修改提交。以下是具体操作步骤:

1. 撤销最后一次提交,但保留更改


如果你想撤销最后一次提交,但保留工作区的更改以便重新提交,可以使用 soft 模式。

git reset --soft HEAD~1

适用场景:撤销提交,但保留更改内容,方便重新提交。
效果:提交被撤销,更改保留在工作区。

2. 撤销最后一次提交,并丢弃更改


如果你想彻底撤销最后一次提交,并丢弃所有更改,可以使用 hard 模式。

git reset --hard HEAD~1

3.撤销多次提交


如果你想撤销多次提交,可以指定要回退的 commit 数量。

# 撤销最近 2 次提交,保留更改
git reset --soft HEAD~2

# 撤销最近 2 次提交,丢弃更改
git reset --hard HEAD~2

适用场景:需要撤销多个提交。

4. 使用 reflog 恢复误操作

如果你误操作了 reset,可以通过 reflog 找到之前的 commit 并恢复。

# 查看操作历史
git reflog

# 恢复到某个 commit
git reset --hard <commit-hash>

适用场景:误操作后需要恢复。

http://www.dtcms.com/a/25818.html

相关文章:

  • 国产编辑器EverEdit - 独门暗器:自动监视剪贴板内容
  • 嵌入式0xDEADBEEF
  • 用python进行二分法查找(python实例三十)
  • 【算法通关村 Day5】Hash和队列的经典问题
  • 敏捷开发06:用户故事估算方法介绍
  • DDD领域驱动开发第2讲:领域驱动开发在货代订单业务的实践
  • 爬虫获取的数据能用于哪些数据分析?
  • 基本控制环节的幅频和相频特性
  • 期权帮|场外个股期权杠杆与风险分析
  • Vue 3 30天精进之旅:Day 29 - 项目实战
  • 拦截器VS过滤器:Spring Boot中请求处理的艺术!
  • 深入解析NoSQL数据库:从文档存储到图数据库的全场景实践
  • 了解几个 HTML 标签属性,实现优化页面加载性能
  • HTML/CSS中后代选择器
  • 目标跟踪(Object Tracking) vs. 目标识别(Object Recognition)
  • 【基础架构篇十五】《DeepSeek权限控制:RBAC+ABAC混合鉴权模型》
  • 第十篇:电源设计的“能量矩阵”——无线充电与碳化硅LLC谐振
  • 一文读懂Docker之Docker Compose
  • ARM64 Trust Firmware [五 ]
  • 什么是 BFC
  • 实现历史数据的插入、更新和版本管理-拉链算法
  • Aseprite详细使用教程(14)——像素画明亮画法
  • 机器学习小项目之鸢尾花分类
  • A-LOAM源代码解析(一)
  • 6121A 音频分析仪
  • Vue的双向数据绑定和React的单向数据流在处理对象数组时的行为
  • anconda安装教程超详细图文教程(附安装包)【2025】最新anconda3安装教程
  • 【Java基础】Java 构造器
  • 网络安全入门攻击与防御实战(四)
  • FRP内网穿透