一、需求背景
初入职场,由于自己的失误或者对git不熟悉,把被人的代码给冲突掉了,然后需要立马回滚,对于新手开发,应该比较常见吧!或者,比较多一种情况,错误把工程add了到了暂存区,比如一些本地配置,本来就不应该提交的,又或者,开发中只提交部分代码,又想最新的提交合并到上一次提交,等等,很多种场景,我们都会用到git版本回退/回滚。接下来就各位初入职场的同学们讲一下如何代码回退/回滚,让同学们对代码回退/回滚不在恐惧。
二、Git版本回退/回滚实操
在实操演练前,我们需要去了解Git版本的一些理论知识:
版本管理的Git 有三种状态: 已提交(committed)、已修改(modified) 和 已暂存(staged)
- 已修改:表示修改了文件,但还没保存到数据库中。
- 已暂存:表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
- 已提交:表示数据已经安全地保存在本地数据库中。
Git 项目拥有四个阶段:工作区、暂存区、 Git 目录、远程仓库(origin)
- git add:是将工作区已修改的文件提交到暂存区
- git commit:是将暂存区的文件提交到Git 目录
- git push:就是将本地git目录的文件提交到远程仓库
1.add回退
错误把工程add了到了暂存区,比如一些本地配置,本来就不应该提交的,发现误添加了某个文件提交到了暂存区,可以通过以下命令撤回到工作区:
代码语言:javascript复制git reset HEAD <文件名>
如果想将所有暂存区的文件撤回到工作区:
代码语言:javascript复制git reset HEAD
2.commit回退
开发中只提交部分代码,又想最新的提交合并到上一次提交,但是又不想有两条提交记录,就可以回滚上一次代码,然后重新一起提交。
代码语言:javascript复制# 将暂存区最近一次提交到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版本回退、回滚操作,其实操作很简单,基本都是几个命令,但是执行的过程需要细心点,欢迎大家收藏,遇到问题直接可以复制运行即可。
我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表