一、本地切换到master分支
git checkout master
二、新建old_master分支备份,以防万一
git branch old_master
git push origin old_master:old_master 将本地old_master分支推送到远程old_master
打开github repo,查看old_master是否和master一致。
三、删除远程master分支
设置github中默认分支为非master分支,否则,下一步删除操作被github禁止,github不能删除默认分支
删除远程的master分支 (注意master前有个:)
git push origin :master
四、版本回退并重新创建远程master分支
本地仓库彻底回退到某一个版本
git reset --hard commit_sha(for example: a10801cc21c2dd4e6fb2d1fdcd6e1ac4fbbfebcf)
git push origin master
五、通知项目组同事本地master同步远程master分支
git reset --hard origin/master
original link:https://ruby-china.org/topics/26320
其他方案:
1. 直接 reset 到某一个版本的分支,然后 git push origin +master 强制提交 master 分支就好了,前提是你备份好本地的 master 分支。
2. 还原到某个commit,然后强推即可
git reset commit_id --hard
git push origin HEAD --force
强推前,用记下远程分支的commit_id即可