git reset

有时候真的因为脑残把不该push的代码合并了,这时候怎么办呢?

git reset 包治百病

git reset [--hard|soft|mixed|merge|keep] [<commit>或HEAD]

 git reset 回滚到指定版本 后面跟着四个选项 分别代表的含义是:

  • --soft  软回滚 也就是退回到commit后的状态,stage不变
  • --mixed 混合,其实就是回退到未commit的状态,这时候git status 会'见红' stage和working tree 不一致
  • --hard 硬,这个真硬,忽略所有 add 和commit 直接回到head 任何改变都会丢弃。(慎用)stage覆盖working tree
  • --keep  保持更改 用指定ref覆盖stage 但是working tree会保持 也会'见红'
  • --merge  如果add/commit后 同--hard 否通 --keep

reset 之后,提交到远程分支的话就需要

git push origin master -f

 -f 即 force update 强制更新

git push -f 了之后有后悔药可以吃么?

留个悬念吧!

 

posted @ 2017-11-20 18:56  dadongx  阅读(352)  评论(0编辑  收藏  举报