宁武皇仁光九年锦文轩刻本《异闻录》载: 扶桑画师浅溪,居泰安,喜绘鲤。院前一方荷塘,锦鲤游曳,溪常与嬉戏。 其时正武德之乱,潘镇割据,战事频仍,魑魅魍魉,肆逆于道。兵戈逼泰安,街邻皆逃亡,独溪不舍锦鲤,未去。 是夜,院室倏火。有人入火护溪,言其本鲤中妖,欲取溪命,却生情愫,遂不忍为之。翌日天明,火势渐歇,人已不见。 溪始觉如梦,奔塘边,但见池水干涸,莲叶皆枯,塘中鲤亦不知所踪。 自始至终,未辨眉目,只记襟上层迭莲华,其色魅惑,似血着泪。 后有青岩居士闻之,叹曰:魑祟动情,必作灰飞。犹蛾之投火耳,非愚,乃命数也。 ————《锦鲤抄》

【git push操作后如何撤销】

一般来说有revert和reset两种方式

reset命令是重置到一个记录:git reset是将之前的提交记录全部抹去,将 HEAD 指向自己重置的提交记录;

revert命令是撤回一个记录;git revert 操作是撤回某一次提交记录,若之后又有提交,提交记录还存在。

个人建议第二种方法,即reset方法,不过要分情况,比如误提交的是我的功能开发分支,并不是prd等大分支,也没有人协作和我共用这个分支,那么我推荐用reset

方法一:revert操作:这种撤销方法会让对应撤销的代码版本移除,不过local history里还是有历史记录的

步骤一:测试push代码:

步骤二:项目根目录打开git  窗口

找到要撤销的提交:复制图中对应的版本号c605c029450fa344e2fcc79e448336c876a37181

步骤三:执行revert撤销

git revert -v 刚刚的版本号

步骤四:push(将revert操作同步到远程)

 

方式二:利用git reset操作回滚代码到指定版本,此种方式比直接revert要好一些,reset如果采用soft模式会保留本地代码的变化,hard则不会

步骤一:添加测试代码,并commit和push

 这里我提交并push两次代码

步骤二:查看日志中的提交id,并选择要回滚到哪次的提交版 3e85ca5432b8d91127b6ae70320a2a739fcfcf4b

 

 步骤三:执行git reset --soft 刚刚复制的提交id

然后执行 git push origin 分支名 --force

如果本地做了修改想要提交现修改后的版本到远程就必须强行推送。因为远程仓库记录过你这个id后的版本。ps:一般协作开发同一个分支时慎用force,如果不是最新pull的代码也许会导致其余人代码丢失,一般有分支规范的公司会规定非自己的分支不让强推

 

 这样回到IDEA,发现本地代码又回到了当时提交前的那一次状态,然后我们不放心的话可以pull拉下最新代码,发现确实远程分支代码变化也同步了

 pull操作后:

 PS:看网上也有reset 然后push后 通过undo commit+ cherry-pick+ stash的方式恢复到提交前状态,感觉也是可以的

posted @ 2023-01-03 16:02  哒布溜  阅读(19003)  评论(0编辑  收藏  举报