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版本回退、回滚操作,其实操作很简单,基本都是几个命令,但是执行的过程需要细心点,欢迎大家收藏,遇到问题直接可以复制运行即可。

相关推荐
程序员海军17 小时前
用了两年多 GPT,我最近开始换模型了,还折腾了个求职避坑 Agent
前端·人工智能·后端
码士集团小青17 小时前
SpringBoot 集成缓存性能之王 Caffeine
spring boot·后端·缓存
excel19 小时前
IndexNow:让搜索引擎更快发现网站更新的主动通知协议
前端·后端·架构
Json____19 小时前
用 FastAPI + Vue3 打造一套完整的在线考试系统:从组卷到阅卷的业务闭环实践
后端·node.js·fastapi·it学习·wwwoop.com
小灰灰搞电子20 小时前
Rust+Slint 实现FTP客户端调试助手源码分享
开发语言·后端·rust
专业程序开发源21 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计
java·spring boot·后端·python·spring·django·课程设计
卷无止境21 小时前
面向arm64桌面客户端开发全景:语言、框架与生态
后端·python
IT_陈寒1 天前
JavaScript的闭包陷阱,这个坑我躺了三天才爬出来
前端·人工智能·后端
用户8356290780511 天前
如何使用 Python 对 Excel 数据进行分组和分级显示
后端·python
vx_Biye_Design1 天前
django房屋租赁推荐系统78455-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·课程设计·express