工作日志-2020年8月31日(星期一)
记一次惨痛的教训😭写了一下午的代码全没了
首先我负责项目是一个前后端分离开发,但是前后端不分离部署的项目,项目的目录结构大致如下:
- app
- .git
- app-web
- main
- src
- webapp
- static
- index.html
- webapp
- src
- main
- app-local
- dist
- static
- index.html
- src
- …
- dist
我负责app-local这个前端项目,然后整个项目是用git作版本控制。
部署流程是在app-local中run build打包成一个dist文件夹,然后把dist的内容替换到webapp文件夹中,然后测试都是从app-web项目中拉取测试的。
今天测试过来让我先发一个版本给他看一下,但是我这边BUG还没改完,不想提交,于是就先build了一个版本准备放在webapp文件夹中。然后我就先git pull
,没问题;git commit
,没问题;git push
,叮~报错了🙄。原来是另一个同事在我git pull
完后的间隙push一个版本到远端了,于是我就想先撤回我的commit,在git pull
一下更新到最新版本,再commit并push。然后百度到用git reset --soft HEAD^
来进行撤销,且该命令仅仅是撤回commit操作,不会影响当前的代码,然而运行过后发现不起作用(TODO:后面要详细研究一下)。然后又看到说是可以用git reset --soft [commit_id ]
来进行撤销,还是不起作用(实际上是commit_id被我理解错了,commit_id不是你想撤回的版本id,而是要撤回==到==的版本id~),然后自己就自以为是的把--soft
换成了--hard
,结果可想而知,俺写了一个下午的代码全没了😭
心态崩了T_T
Tip:撤回commit的正确姿势:
`git reset --soft [commit_id ]` # commit_id是要撤回到的版本!