处理回滚有两种方案
使用 revert
打开git面板
首先在左边选择本地的需要处理的分支,这里以本地Local/dev为例
目的:dev 分支v2 commit版本需求发生了变化,目前不需要了,把v2 commit回退。
按上图所示,首先选中本地需要操作的分支 dev,然后选中commit列表里面备注为v2的鼠标右键弹出菜单选择 Revert Commit
操作后commit里面显示为
多了一个 Revert "v2" commit
此时本地仓库变成了v1的代码,但是远程还没有。
这时候可以commit + push到远端了
至此方案一回滚代码 本地 + 远端仓库 搞定。
重要提示:该方案是硬回滚也就是强制回滚,会删除所选commit之前的所有commit,使用需谨慎。
首先使用reset将本地恢复
和前面方案一样,先打开git面板选择本地操作的分支,然后弹出菜单选择 "Reset Current Branch to Here"。
然后弹出的Rest类型选择 Hard
点击Reset后查看commit列表
可以看到v1前面的commit直接不见了,对就是这样,直接就删除了。
这时候本地的dev回滚到了v1 commit版本,但是远端还是v2 commit 版本。此时需要强制推送一下(注意这里必须强制推送普通推送无效,且普通推送会更新把v2更新回来)
点push的下三角,然后强制提交。提交后远程同样删除所选commit之后的commit,且无法恢复。所以该方式操作需谨慎!!!
提示:如果上方的Force Push 为灰色无法点击,那么可能你的分支是master/man 默认idea的git设置对主分支有保护,打开idea setting,找到版本管理里面的git,然后把保护分支删除,然后保存设置再来push就可以了
https://www.leftso.com/article/2402220922322204.html