0.慎重
请先4.注意
1.背景
在A分支开发,测试提出B功能(在B分支上)有bug。为了切到B分支修改,将A分支更改内容做Stash Changes操作暂存。切到B分支,改完Bug后提交推送了代码。之后想切回A分支继续开发,脑子短路了一下,没有切换分支成功就直接在B分支unstash Changes导致A分支上暂存的代码合到了B分支上。
2.思路
查了一圈也没有找到这种场景的记录,最终自己想了个解决方案。出现这种情况的时候,大致分为两种情况:
- 第一种,想我这样,没有切换到A,就将A分支的暂存合到了B分支上。
- 第二种,切换到A分支了,但是将非A分支的暂存合到了A分支上。
两种情况,都有一个前提就是,所在分支已经没有未提交的内容了。
这样,我就不管如何撤销unstash changes操作,直接将代码reset到上一次commit即可(其实即使有未提交的内容也能处理)。
3.解决
打开version controll找到本分支的所有的commit记录,右键上一次的commit,选择Reset Current Branch to Here.
弹出的四个模式,直接选择hard,丢弃掉此次提交之后的更改即可。
4.注意
reset时,我选择了hard模式,是因为我已经确认选择右键的commit之后,没有有用的更改。如果如果有的话,不能选hard,否则会将此次之后的更改全部干掉。