在日常的开发中,我们经常使用Git来进行版本控制。有时候,我们可能会不小心将错误的代码 Push 到远程仓库,或者想要在本地回退到之前的某个版本重新开发。
或者像我一样,写了一些感觉以后很有用的优化方案push到线上,又接到了一个新的需求。但是呢,项目比较重要,没有经过测试的方案不能轻易上线,为了承接需求只能先把push上去的优化方案先下掉。
现在我的分支是这样的,我想要在本地和远程仓库中都恢复到help文档提交的部分。
IDEA 中 Git 较为优雅的方法
- Reset Current Branch 到你想要恢复的commit记录
这个时候会跳出四个选项供你选择,我这里是选择hard。
其他选项的含义仅供参考,因为我也没有一一尝试过。
Soft:你之前写的不会改变,你之前暂存过的文件还在暂存。
Mixed:你之前写的不会改变,你之前暂存过的文件不会暂存。
Hard:文件恢复到所选提交状态,任何更改都会丢失。你已经提交了,然后你又在本地更改了,如果你选hard,那么提交的内容和你提交后又本地修改未提交的内容都会丢失。
keep:任何本地更改都将丢失,文件将恢复到所选提交的状态,但本地更改将保持不变。你已经提交了,然后你又在本地更改了,如果你选keep,那么提交的内容会丢失,你提交后又本地修改未提交的内容不会丢失。
然后,之前错误提交的commit就在本地给干掉了。但是远程仓库中的提交还是原来的样子,你要把目前状态同步到远程仓库。也就是需要把那几个commit删除的操作push过去。
打开push界面,虽然没有commit需要提交,需要点击Force Push,强推过去。
需要注意的是对于一些被保护的分支,这个操作是不能进行的。需要自行查看配置,我这里因为不是master分支,所以没有保护。
可以看到,远程仓库中最新的commit只有我们的help文档。在其上的三个提交都没了。
图片
注意: 以上使用的是2023版IDEA,如果有出入的话可以考虑搜索使用git命令。