(1)IDEA进入版本控制。在需要回滚的版本上鼠标右键,然后选择Reset Current Branch to Here。

(2)在弹出的窗口中选择Mixed。

git本地代码库包含工作区、暂存区(index:add之后)、版本库(HEAD:commit之后)。
工作区:新增加的文件为Untracked(未跟踪)状态。
暂存区:执行git add后变成Staged(已暂存)状态。
版本库:Staged状态执行git commit则将修改同步到版本库中。
Soft:回退版本库。回退版本之后提交的代码保存在暂存区中。
Mixed:回退版本库,暂存区。回退版本之后提交的代码处于未提交状态,此时也可以提交;add之后的代码处于未add状态。
Hard:回退版本库,暂存区,工作区。回退到指定版本,该版本之后的修改(包括本地修改)全无,慎用。
(3)代码回滚到指定版本后,不能Commit代码,直接Push。这里需要强制Push才能把代码推送到远程仓库。

(4)如果Force Push是灰色的,需要去设置下,如下图所示。 将master 改成空 或另外分支的名字
强制推送按钮即可点击了!!!

reset 和 revert的区别:
git revert 是撤销某次操作,此次操作之前的commit都会被保留
git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区
网友评论