当前位置: > 其它学习 > Git >

Git 如何删除远程仓库的某次错误提交

时间:2019-02-01 16:22来源:未知 作者:IT
一、本地切换到master分支git checkout master
二、新建old_master分支备份,以防万一
git branch old_master 
git push origin old_master:old_master 将本地old_master分支推送到远程old_master
 
三、删除远程master分支
设置github中默认分支为非master分支,否则,下一步删除操作被github禁止,github不能删除默认分支. 
将如下图中的 Default Branch 改成 非master。
 
删除远程的master分支 (注意master前有个:) 
git push origin :master
 
四、本地版本回退到某一个版本
本地仓库彻底回退到某一个版本 
git reset –hard commit_sha(for example: a10801cc21c2dd4e6fb2d1fdcd6e1ac4fbbfebcf)
 
五、重新创建远程master分支
git push origin master
 
如果master 分支不在的话,需要 
如果你还想在将master分支做为默认的分支,如果master分支在的话就git push origin master。如果不在的话,就
 
再建一个叫master的分支,然后类似操作(将内容提交到master分支上,push到远程的github上,进入settings中设置master为默认的分支即可。)
 
参考链接
http://zhiwei.li/text/2015/08/16/git%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93%E7%9A%84%E6%9F%90%E6%AC%A1%E9%94%99%E8%AF%AF%E6%8F%90%E4%BA%A4/
 
http://stackoverflow.com/questions/23973185/gitlab-push-you-are-not-allowed-to-access-master
 
http://mlmwblog.lofter.com/post/1cc9d8d5_3c2a006
 
参考(删除远程分支)
如果不再需要某个远程分支了,比如搞定了某个特性并把它合并进了远程的 master 分支(或任何其他存放稳定代码的分支),可以用这个非常无厘头的语法来删除它: 
git push [远程名] :[分支名] 
如果想在服务器上删除 serverfix 分支,运行下面的命令: 
$ git push origin :serverfix 
To git@github.com:schacon/simplegit.git 
– [deleted] serverfix 
咚!服务器上的分支没了。 
你最好特别留心这一页,因为你一定会用到那个命令,而且你很可能会忘掉它的语法。 
有种方便记忆这条命令的方法: 
记住我们不久前见过的 git push [远程名] [本地分支]:[远程分支] 语法 
如果省略 [本地分支],那就等于是在说“在这里提取空白然后把它变成[远程分支]”。 
上面这小段话,来自权威文档 
http://git-scm.com/book/zh/Git-%E5%88%86%E6%94%AF-%E8%BF%9C%E7%A8%8B%E5%88%86%E6%94%AF
 





(责任编辑:IT)
------分隔线----------------------------