Git删除版本库和本地项目下所有文件目录并推送到远程仓库,回滚到某个commit id,再次推送到远程仓库失败的解决方法

Git删除版本库和本地项目下所有文件目录并推送到远程仓库,回滚到某个commit id,再次推送到远程仓库失败的解决方法

**

这是搭建Gitlab时误操作遇到的坑,请谨慎操作,数据无价,代价很大

**

测试:

[root@gitlab mytest]# ls
review texun1 texun2
[root@gitlab mytest]# rm -rf review texun1 texun2
[root@gitlab mytest]# git rm -r --cached .

[root@gitlab mytest]# git commit -m “rm all”

deleted: “review/\347\275\221\347\273\234\345\215\207\347\272\247\351\241\271\347\233\256.pdf”

deleted: “review/\351\235\242\350\257\225\351\242\230\346\225\264\347\220\206.pdf”

deleted: texun1/maven.md

deleted: texun2/maven.md

[root@gitlab mytest]# git push -u origin master

[root@gitlab mytest]# ls #为空

直接恢复就是回到上次操作
[root@gitlab mytest]# git reset --hard HEAD^
[root@gitlab mytest]# ls
review texun1 texun2

或者恢复到某个commit id
[root@gitlab mytest]# git log
[root@gitlab mytest]# git reset --hard a612edb2d5d33524d46a274808e1a511b70830a2
[root@gitlab mytest]# ls
review texun1 texun2

强推到远程也会失败,提示本地仓库落后与远程仓库(新旧)
[root@gitlab mytest]# git push -u -f origin master
Total 0 (delta 0), reused 0 (delta 0)
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To git@121.37.242.52:devops/myweb.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to ‘git@gitlab:devops/myweb.git’

解决方法:

方法一:

登录到gitlab,在项目的左侧栏设置 ——》版本库
在这里插入图片描述
分支保护 ——》点击展开
在这里插入图片描述
点击——》解除保护
在这里插入图片描述
然后回到终端操作推送到远程仓库
[root@gitlab mytest]# git push -u -f origin master #要强制推送不然会有冲突

在推送成功后把gitlab设置还原
在这里插入图片描述

方法二:
删除.git目录
[root@gitlab mytest]# rm -rf .git

再次初始化仓库
[root@gitlab mytest]# git init

跟踪恢复后的目录文件,比提交到版本库
[root@gitlab mytest]# git add .
[root@gitlab mytest]# git commit -m “rm after,reset 1.0”

链接远程仓库,并同步远程仓库到本地仓库
[root@gitlab mytest]# git remote add origin git@121.37.242.52:devops/myweb.git
[root@gitlab mytest]# git pull origin master
就能再次成功推到远程
[root@gitlab mytest]# git push -u origin master

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值