idea操作git远程回滚到某个提交节点或某个版本

场景:同个项目同时开发两个版本分支,不小心将a版本代码提交到b版本,想要将代码会滚到提交前。

通过在网上搜索答案和实践,总结出以下操作步骤:

1. 项目右键后,然后在“Show History”中找到当前版本(暂时取名newVersion)和想要回退到版本(暂时取名oldVersion)

2. 选择oldVersion版本右键点击“Copy Revision Number”复制oldVersion版本版本号:

3. 然后右击项目依次选中:Git->Repository->Reset HEAD

4.Reset Type项选择Hard,To Commit项填写刚刚复制版本号;然后点击Reset按钮

5. 这时本地代码已经回退到oldVersion,这时候如果直接push到远程仓库,会提示版本冲突,点击“cancel”取消。

6. 下面有两种解决冲突方法(我选择第一种)

方法一 :不解决,直接强制提交:
a. 打开Terminal,切换到项目所在目录
b. 执行:git push -f

方法二:
a. 右击项目依次选中:Git->Repository->Reset HEAD
b. Reset Type项选择Mixed, To Commit项填写最新提交记录版本号(切记是最新分支版本号newVersion分支);然后点击Reset按钮

c. 这时你会发现,最新版本有回到newVersion。但是代码还是oldVersion代码,这时候重push到远程仓库就不会版本冲突了

此方法代码回滚 但是分支不会

7. 方法一vs方法二
方法一会将回退提交记录抹点,而方法二会保留

 

 
posted @ 2020-07-18 15:43  不缺重头再来的勇气  阅读(3304)  评论(0编辑  收藏  举报