有时候真的因为脑残把不该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 了之后有后悔药可以吃么?
留个悬念吧!