git reset --hard

撤下上1次push提交,不留历史记录(记得备份)

1
2
3
1. git log 
2. git reset --hard a517075c66cec4f44c336//回退到a517075c66cec4f44c336版本, 这一步之前一定要保存好文件,之后就什么都没有了
3. git push origin feature/CITC-99 -f //强制push <> -f,不强推会冲突,推不上,必须强推

git reset –hard ID之后,本地文件清空找回方法(如果之前每次提交之前都有git stash的话,按以下步骤可以找回)

1
2
3
4
5
6
7
1. git fsck --lost-found
2. 找到“悬空 commit ID”,忽略“悬空 blob”,
3. git show 7480ed4bba,从上到下,一个个ID找下去,直到找到文件为止
4. 找到后,git merge 7480ed4bba, 退出
5. git stash,再次备份文件,把文件重命名,使git reset --hard后不被丢失
6. 再次git reset --hard 6bd3af08e008ff 恢复到撤消之前的代码,无影无踪;
7. 手动把备份的文件恢复