使用git回退代码

如果你不小心使用 git commit -m 提交了代码,可以通过以下几种方式回退:

1. 使用 git reset 回退提交

软回退(推荐)- 保留工作区和暂存区的更改

bash 复制代码
git reset --soft HEAD~1

这会将最近一次提交撤销,但保留你所有的更改在暂存区中。

混合回退 - 保留工作区更改,但清空暂存区

bash 复制代码
git reset --mixed HEAD~1
# 或者简写为
git reset HEAD~1

这会撤销提交并将更改放回工作区(未暂存状态)。

硬回退 - 完全删除提交和所有更改(危险操作)

bash 复制代码
git reset --hard HEAD~1

⚠️ 警告:这将永久删除提交和所有相关更改,无法恢复。

2. 使用 git revert 创建反向提交(适用于已推送的提交)

bash 复制代码
git revert HEAD

这会创建一个新的提交来撤销上一次提交的更改,适合已经推送到远程仓库的情况。

3. 修改最后一次提交(如果尚未推送)

如果你只是想修改提交信息或添加遗漏的文件:

bash 复制代码
# 修改提交信息
git commit --amend -m "新的提交信息"

# 或者添加遗漏的文件后修改提交
git add <遗漏的文件>
git commit --amend --no-edit

如何选择合适的方法:

  • 如果提交尚未推送到远程仓库 :使用 git reset
  • 如果提交已经推送到远程仓库 :使用 git revert
  • 如果只是想修改提交信息或内容 :使用 git commit --amend

建议先使用 git log 查看提交历史,确认当前状态后再选择合适的回退方式。

相关推荐
习惯就好zz2 小时前
Git 交互式 rebase 实战:将后续修改合并到历史提交
git
南棱笑笑生8 小时前
20260429给万象奥科的开发板HD-RK3576-PI适配瑞芯微原厂的Android14时删除全部的.git目录
git·rockchip
tsyjjOvO9 小时前
【Git 从入门到实战】(IDEA+Gitee 版)
git·gitee·idea
你知道“铁甲小宝”吗丶10 小时前
git推送到多平台(gitee/github)
git·gitee·github
bksczm11 小时前
Linux之基础开发工具之git
git
GUET_一路向前11 小时前
【git工作常用指令】
大数据·git·elasticsearch
handler0111 小时前
Git 核心指令速查
linux·c语言·c++·笔记·git·学习
二宝哥12 小时前
大数据之yum安装git
git
牛奶咖啡1312 小时前
Git实践——git远程仓库操作
git·git远程仓库的创建·github创建仓库·git将本地仓库推送到远程仓库·使用git克隆远程仓库到本地·git分支的创建与合并·git冲突的产生与解决
随风,奔跑13 小时前
Git学习笔记
笔记·git·学习