IDEA远程仓库版本回滚

访问个人博客git

使用 git 进行项目的版本控制时,确定会遇到回滚版本的状况,回滚有两种,一种是本地仓库回滚,另一种是远程仓库回滚。如下详细讲解两种回滚方式,本文主要讲解远程回滚,以及常见使用误区。测试

<!--more-->spa

本地仓库回滚

本地回滚就很简单,只是要撤销 commit 信息便可。能够直接使用 Reset HEAD进行回滚。
版本控制

HEAD^ 是还原到上一个版本,HEAD^^ 是还原到上上一个版本。 Reset Type 有三种:blog

mixed 默认方式,只保留源码,回退commit和index信息 soft 回退到某个版本,只回退了commit的信息,不会恢复到index file一级。若是还要提交,直接commit hard 完全回退,本地源码也会变成上一个版本内容开发

错误的远程仓库回滚方式

远程仓库代码回滚,若是上 Google 上一搜,基本出来的答案都是使用 Reset HEAD 加上 git push -f 强制提交的方式。get

我本地测试了一下,若是有两我的同时在这条分支上开发,其中一我的 小 A 若是使用这种方式进行回滚了远程仓库代码,另一我的 小 B 此时本地仍是回滚以前的代码,小 B 那里就会出现本地代码版本高于远程分支版本的状况,此时若小 B 进行了 push 操做,以前小 A 回滚的代码就又会被推送到远程的仓库了。除非小 B 在回滚后,将其本地仓库的版本也进行回滚。才能保证不会把回滚的代码从新 push 回远程仓库,可是若是开发人员多,就没法保证全部开发人员的本地分支都回滚!源码

所以,不要使用 git push -f 这种方式来强制回滚远程仓库代码!博客

正确的远程仓库回滚方式

如图所示,如今须要将远程仓库回滚到 dev-103 此次提交点。it

选中 dev-103 这一行,右键选择 Revert

这里提示须要 commit

commit 以后,push 到远程仓库中。最终结果以下:

新增了一条提交记录,查看代码已经被回滚了

其余开发人员若是进行了 pull,其本地仓库也被正确回滚到了 dev-103 提交点,就无需再担忧回滚的代码又被从新 push 到远程仓库啦。

搞定,收工!

相关文章
相关标签/搜索