Git回退服务器版本及receive.denyDeleteCurrent配置

本文介绍了如何在Git中回退本地和远程仓库到特定版本,包括两种方法:直接在远程服务器执行git reset --soft 和删除远程master分支后再推送。在删除远程分支时遇到receive.denyDeleteCurrent问题,通过设置该配置为false解决了问题。
摘要由CSDN通过智能技术生成

如果某次修改了某些内容,并且已经commit到本地仓库,
而且已经push到远程仓库了,此此想把本地和远程仓库都回退到某个版本。
上面的git reset只是在本地仓库中回退版本,远程仓库的版本不会变化。
这样,即使本地reset了,但如果再git pull,
那么远程仓库的内容又会和本地之前的内容进行merge.

一:有两种办法解决问题:
1:直接在远程server的仓库目录下,执行git reset --soft 10efa来回退。
注意,在远程不能使用mixed和hard参数。
2:在本地直接把远程的master分支给删除,然后再把reset后的分支push到远程。
2.1:新建old_master分支做备份:
~/GitHub/sunalong/gitStudy on  master 11:45:37
$ git branch old_master
2.2:push到远程
~/GitHub/sunalong/gitStudy on  master 11:46:11
$ git push origin old_master:old_master
Total 0 (delta 0), reused 0 (delta 0)
To /Users/along/GitHub/GitRepository/gitStudy.git
 * [new branch]      old_master -> old_master
2.3:本地仓库回退到某个版本:
~/GitHub/sunalong/gitStudy on  master 11:46:52
$ git reset --hard 5391b84
HEAD is now at 5391b84 second add,update the resetdemo
2.4:删除远程的master分支
~/GitHub/sunalong/gitStudy on  master 11:49:29
$ git push origin :master
To /Users/along/GitHub/GitRepository/gitStudy.git
 - [deleted]         master
2.5:重建master分支
~/GitHub/sunalong/gitStudy on  master 12:04:22
$ git push origin master
Total 0 (delta 0), reused 0 (delta 0)
To /Users/along/GitHub/GitRepository/gitStudy.git
 * [new branch]      master -> master

二:实际操作:
1:日志信息:
1.1.之前日志内容为:
4c08d1c  -- [HEAD]    sixed commit (26 minutes ago)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值