IDEA远程仓库版本回滚
1 简介
使用 git 进行项目的版本控制时,肯定会遇到回滚版本的情况,回滚有两种,一种是本地仓库回滚,另外一种是远程仓库回滚。以下详细讲解两种回滚方式,本文主要讲解远程回滚,以及常见使用误区域
2 本地仓库回退
本地回滚就很简单,只是要撤销 commit 信息即可。可以直接使用 Reset HEAD进行回滚。其原理和使用 git命令进行回退类似,我的另一篇博文也有详细的介绍:https://blog.csdn.net/qq_38339124/article/details/98869755
HEAD^ 是还原到上一个版本,HEAD^^ 是还原到上上一个版本。
Reset Type 有三种:Mixed 、Soft、Hard 关于三种回退方式之前的博文已经有过详细的解释。
3 错误的远程仓库回滚方式
远程仓库代码回滚,如果上 Google 上一搜,基本出来的答案都是使用 Reset HEAD 加上 git push -f 强制提交的方式。
我本地测试了一下,如果有两个人同时在这条分支上开发,其中一个人 小 A 如果使用这种方式进行回滚了远程仓库代码,另外一个人 小 B 此时本地还是回滚之前的代码,小 B 那里就会出现本地代码版本高于远程分支版本的情况,此时若小 B 进行了 push 操作,之前小 A 回滚的代码就又会被推送到远程的仓库了。除非小 B 在回滚后,将其本地仓库的版本也进行回滚。才能保证不会把回滚的代码重新 push 回远程仓库,但是如果开发人员多,就无法保证所有开发人员的本地分支都回滚!
因此,不要使用 git push -f 这种方式来强制回滚远程仓库代码!
4 正确的远程仓库回滚方式
commit 之后,push 到远程仓库中。最终结果如下:
其他开发人员如果进行了 pull,其本地仓库也被正确回滚到了 dev-103 提交点,就无需再担心回滚的代码又被重新 push 到远程仓库了