七日打卡——提交的代码里说了产品经理的坏话怎么办?别急,后悔药来

268 阅读3分钟

我在代码注释里骂了产品并且提交了

/**
 * 可(dou)爱(bi)产品让这么做的交互,我也不知道怎么办
 **/
 function()

git add -> git commit -> git pu……

等等,好像有什么不对!是不是注释里有了不该有的东西?
现在改掉再push不会有人发现对不对?
不会有人那么闲去看每一个commit的内容吧~
但是……万一呢?不行不行……但是要怎么办?
commit能不能撤销啊?啊啊啊啊……想起产品那张漂(yan)亮(su)的脸蛋已经预见到社会性死亡呢~

嗯?等等……撤销?撤销不就好了!

后悔药?对!我有!

git reset --hard
——所有你不知道的并不代表不存在
git reset --hard {commit-id} 这个命令的作用就是强制把文件恢复到某一次commit(根据commitid判断)的状态。让这段错误的往事,淹没在历史的尘埃中,除了作为当事人,谁也不知道究竟发生了什么……

让我们重现一下流程以及解决过程:

  1. 大胆码代码

  2. 不检查就大胆提交

  3. 发现大问题

  4. 慌了慌了,试图使用 git reset

  5. 开始找log,使用 git log 命令,查看每次提交的commit id,git reset 命令的回退原则就是回滚到某一个commit版本中,这个commit版本则是根据log里的commit id来确认,多数情况下我们只需要取前六位就可以了。

  6. 撤销commit 因为执行了git log,这个时候就可以看到之前所有的commit了(中文的提交信息看不到,转码了,望解决),我们找到第二个的commit,这个其实是倒数排下来的,然后执行 git reset --hard e580be (这串id其实就是需要还原到的某个commit的id的前6位,也可以输入整个id的)

  1. 大功告成 我们已经撤销了备注为“123”的提交,回滚到了上一个“不要提交啊”的commit里。 致此,在commit列表里也看不到了那条提交,这个时候进行push,那段不该让人看到的代码就永远也不会出现在这个世上。

只是,你的记忆中还会存在,时刻提示你:不要在代码里写不该写的东西!写了也不要提交!

所有命运赠送的礼物,早已在暗中标好了价格

git reset --hard 好用吗?这么好用那我就不客气了随意用了?呵,你知道的,所有命运赠送的礼物,早已在暗中标好了价格!git reset 是一个极度霸道的命令,会把你本地所有的代码还原到上次commit的版本,所以……如果改动了大量的代码……请慎用!

不过话说回来,向来是不建议一次提交大批量的代码……这样……对viewer来说也不友好,甚至自己回顾的时候也是一团糟……