Git 删除 GitHub 远程仓库中 master 分支的多个提交

caiqinghua · 2015年07月03日 · 最后由 rubyu2 回复于 2015年07月10日 · 10870 次阅读

一、本地切换到 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

直接 reset 到某一个版本的分支,然后 git push origin +master 强制提交 master 分支就好了,前提是你备份好本地的 master 分支。

#1 楼 @tiseheaini 谢谢,备份到远端也可以

强制提交需慎重。

还原到某个 commit,然后强推即可

git reset commit_id --hard
git push origin HEAD --force

强推前,用记下远程分支的 commit_id 即可

git 的黄金定律之一:公共分支上永远不要做 reset 已经提交的 commit!!!用 revert。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号