Git回退实战之add和commit回滚

一、需求背景

初入职场,由于自己的失误或者对git不熟悉,把被人的代码给冲突掉了,然后需要立马回滚,对于新手开发,应该比较常见吧!或者,比较多一种情况,错误把工程add了到了暂存区,比如一些本地配置,本来就不应该提交的,又或者,开发中只提交部分代码,又想最新的提交合并到上一次提交,等等,很多种场景,我们都会用到git版本回退/回滚。接下来就各位初入职场的同学们讲一下如何代码回退/回滚,让同学们对代码回退/回滚不在恐惧。

二、Git版本回退/回滚实操

在实操演练前,我们需要去了解Git版本的一些理论知识:

版本管理的Git 有三种状态: 已提交(committed)、已修改(modified) 和 已暂存(staged)

  • 已修改:表示修改了文件,但还没保存到数据库中。
  • 已暂存:表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
  • 已提交:表示数据已经安全地保存在本地数据库中。

Git 项目拥有四个阶段:工作区、暂存区、 Git 目录、远程仓库(origin)

  • git add:是将工作区已修改的文件提交到暂存区
  • git commit:是将暂存区的文件提交到Git 目录
  • git push:就是将本地git目录的文件提交到远程仓库

1.add回退

错误把工程add了到了暂存区,比如一些本地配置,本来就不应该提交的,发现误添加了某个文件提交到了暂存区,可以通过以下命令撤回到工作区:

perl 复制代码
git reset HEAD <文件名>

如果想将所有暂存区的文件撤回到工作区:

perl 复制代码
git reset HEAD

2.commit回退

开发中只提交部分代码,又想最新的提交合并到上一次提交,但是又不想有两条提交记录,就可以回滚上一次代码,然后重新一起提交。

perl 复制代码
# 将暂存区最近一次提交到Git目录的文件全部撤回到暂存区
git reset --soft HEAD^

3.远程仓库版本回退

这种情况,是希望大家不要遇到,直接关系到远程代码回退的,但是开发中有可能出现的,比如,项目分阶段上线,而却把所有代码都给提交了。这时候就要,回退版本,然后重新提交。

1)打开更新历史

右击项目 ------> Git ------> Show History

2)复制最版本和要回退的版本

选中,点击"Copy Revision Number"复制两个版本的版本号:

保存下来:

最新版本:2746f428a3d3d000bd1b0e886ef8167e1f73ec9c

回退版本:6bc5691cbe7304cb185b70fbc0dd975c7de86e8a

3)右击项目依次选中:Git->Repository->Reset HEAD

4)执行版本回退

Reset Type: Hard

To Commit: 输入回退版本(6bc5691cbe7304cb185b70fbc0dd975c7de86e8a5)

然后点击Reset按钮

5)这时本地代码已经回退到oldVersion,这时候如果直接push到远程仓库,会提示版本冲突。

三、总结

本文主要是讲解如何熟练运用git版本回退、回滚操作,其实操作很简单,基本都是几个命令,但是执行的过程需要细心点,欢迎大家收藏,遇到问题直接可以复制运行即可。

相关推荐
量化分析码农1 小时前
股票历史数据的复权参数对照:多级别返回的字段与数值差异
java·javascript·后端
程序员cxuan2 小时前
讲真,智能路由这事儿,还得看基元律动
人工智能·后端·程序员
vaskilab3 小时前
Schema 全绿,Agent 却把参数编造了
后端
Java与AI落地3 小时前
Spring AI 上手:给现有 Java 服务加一个能用的 AI 接口
后端
Swot3 小时前
SvelteKit 数据流研究:`+page.js` 和 `+page.server.js` 到底谁在跑,数据又去了哪儿
前端·后端
一条Go3 小时前
历史告警归档:为什么"删掉主库行"是最后一步
后端·架构·github
nice_lcj5203 小时前
【从零理解 Spring AI · 16】Agent 与工作流:什么该写死,什么该让模型决定
java·人工智能·后端·spring ai·ai应用开发
梦醒江南3 小时前
Agent 调工具报 504 之后:测试如何设计网络抖动下的幂等与补偿验证?
后端·agent·ai编程
站大爷IP3 小时前
Python的内存分析把我坑惨了,原来tracemalloc和memory_profiler的区别这么大
后端
Captaincc3 小时前
转译:《软件工程师现在该怎么办》
前端·后端·ai编程