git回滚到指定版本,并提交到远程分支
1、git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
2、git log 可以显示所有提交过的版本信息
二者区别:用git log则是看不出来被删除的commitid,用git reflog则可以看到被删除的commitid
3、git reset --hard HEAD 切换到版本号为HEAD的那个版本,例如
git reset --hard 0fc2a4d 那么会切换到版本号为0fc2a4d的那个版本,那个版本的提交信息为解决冲突
4、执行完上面的命令之后,会切换到0fc2a4d那个版本,后面的乱码是“解决冲突”四个字的乱码
5、git push -f origin test 强制推送到远程分支,-f 强制,origin 远程仓库名,test 远程分支名
6、一般情况下不建议这样使用,因为回滚到指定版本,别人提交的代码有可能会被回滚。使用强制推送原因,远程的分支被搞坏了,自己的和别人(多人)的代码都不完整了,或者别人(多人)的代码被谁给覆盖了,或者谁提交之后项目代码问题比较大,而且再次修改代码也无法拯救,那么git reflog选定一个都可以接受的版本回滚,少部分别人被回滚的代码,重新提交即可