当前位置: 首页 > 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>

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

相关文章:

  • 国产编辑器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
  • 纪念|脖子上挂着红领巾的陈逸飞
  • 巴菲特最新调仓:一季度大幅抛售银行股,再现保密仓位
  • 长三角首次,在铁三赛事中感受竞技与生态的共鸣
  • 微软宣布全球裁员约3%:涉及约6000人,侧重经理层
  • 文化润疆|为新疆青少年提供科普大餐,“小小博物家(喀什版)”启动
  • 美国和沙特签署上千亿美元军售协议