今天是2019年9月29日,阳光明媚,早早来到公司,打开电脑,把上周写的代码提交到git,提交之后,定睛一看,卧槽,备注写错了,怎么办,公司只有统一的git规范的,备注不按标准要扣钱,于是赶快求助度娘。
第一步、撤销提交信息
首先,通过git log
查看提交信息,以便获取需要回退至的版本号:
kenneth:new-android kenneth$ git log
commit 8bbb8279c5258e7604f1c4676e4fadc7bdb87795 (HEAD -> dev, origin/dev, wwww)
Author: wangjinhao#### <xxx@163.com>
Date: Sun Sep 29 09:33:13 2019 +0800
Revert "feat(移动报销--报销单详情): 垫付单据排序"
This reverts commit 63bdb39d47b9ee7df26966e9224a60bec76cdda9.
commit 63bdb39d47b9ee7df26966e9224a60bec76cdda9
Author: wangjinhao#### <xxx@163.com>
Date: Sun Sep 29 09:31:03 2019 +0800
feat(移动报销--报销单详情): 垫付单据排序
commit 972b6d096f0df72ffd2a2185d873e2dbfe275bed
Author: wangjinhao#### <xxx@163.com>
Date: Fri Sep 27 18:00:08 2019 +0800
fix(我的--个人中心): 点击跳转到修改个人信息的热区放大
我这里需要撤回到fix(我的--个人中心),因为上两次都是错误提交,mmp要扣两次钱了,commit id是972b6d096f0df72ffd2a2185d873e2dbfe275bed
然后,通过git reset –soft <版本号>重置至指定版本的提交,达到撤销提交的目的:
kenneth:new-android kenneth$ git reset --soft 972b6d096f0df72ffd2a2185d873e2dbfe275bed
参数soft指的是:保留当前工作区,以便重新提交
还可以选择参数hard,会撤销相应工作区的修改,一定要谨慎使用。这个没试,貌似是把代码都清空了??不过保险起见,错误提交的代码最好拉个分支备份一下,万一一顿操作全给整没了,就凉凉了。
然后,通过git log
确认是否成功撤销:可以查看最近的提交已经到我需要的commit了,说明已经成功将错误提交撤销
kenneth:new-android kenneth$ git log
commit 972b6d096f0df72ffd2a2185d873e2dbfe275bed (HEAD -> dev)
Author: wangjinhao#### <xxx@163.com>
Date: Fri Sep 27 18:00:08 2019 +0800
fix(我的--个人中心): 点击跳转到修改个人信息的热区放大
commit 04038f1b0ac54bcd64979b60ee96e9d2b0e9be2d
Author: wangjinhao#### <xxx@163.com>
Date: Fri Sep 27 12:53:52 2019 +0800
fix(报销单--报销单详情): 收款信息无报销人会提示
第二步、撤销
通过git push origin master –force强制提交当前版本号,以达到撤销版本号的目的:此时远端的commit就被KO了
网上copy的代码,自己的git操作框框让我误关了
$ git push origin master --force
Total 0 (delta 0), reused 0 (delta 0)
To github.com:hanchao5272/myreflect.git
+ a448220...aa909cf master -> master (forced update)
第三步、修改代码重新提交
就和以前一样的操作,正常修改提交即可,不提交丢弃我也不管。