使用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 查看提交历史,确认当前状态后再选择合适的回退方式。

相关推荐
马里马里奥-9 小时前
VS Code Git 工作树:解锁多分支并行开发新体验
git
2401_8534482313 小时前
Git安装流程和基础使用步骤
git·github
Sagittarius_A*19 小时前
Web 安全之 Git 泄露:原理剖析 + CTFHub Log/Stash/Index 全题型解法
git·安全·web安全
lazy H19 小时前
从入门到日常开发,一篇文章掌握 Git 核心操作
git·后端·学习·github
zzqssliu1 天前
煤炉自动代拍系统的队列设计与超时控制机制
git·github
一支绝命钩1 天前
FPGA工程Git常用操作手册
git
不搞学术柒柒1 天前
Git新功能完整开发提交流程
git
午安~婉1 天前
Git中SSH连接
前端·git·gitee
888CC++2 天前
VS Code Git 工作树:解锁多分支并行开发新体验
git
阿虎儿2 天前
Git exclude 功能解析
git