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

相关推荐
瑞码空间13 小时前
git知识点黄金笔记
笔记·git·elasticsearch
----云烟----13 小时前
Git 提交忽略某些文件方法
git
切糕师学AI16 小时前
如何查看已合并到 master 分支的所有分支?Git 分支清理指南
大数据·git·elasticsearch
DevUp1 天前
一个管「引」,一个管「抄」:Submodule 和 Subtree 到底差在哪
git·前端工程化
lingran__1 天前
Git 完全指南(三):远程仓库与标签管理
开发语言·git·gitee·ssh·团队协作·远程仓库·分布式版本控制
lingran__2 天前
Git 完全指南(二):分支管理
git·分支管理·版本控制·团队协作·多人开发·git flow
必须会一定会2 天前
Agent Handoff v0.6.0 跨电脑同步:Git、EVENTS.jsonl、CONTEXT.md 使用方法
人工智能·git·ai编程
cui_hao_nan2 天前
Git常用命令1
运维·git
xxwl5852 天前
Git常用命令的学习
git·学习
攻城狮-申2 天前
git本地分支对齐远程分支
前端·git