前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一次意外删除gitlab项目,及恢复过程

一次意外删除gitlab项目,及恢复过程

作者头像
茶半香初
发布2021-11-26 14:46:29
3.1K0
发布2021-11-26 14:46:29
举报
文章被收录于专栏:程序员那点事

意外缘由: 项目上人员离职,gitlab的一些权限需要回收,但是离职人员是项目的所有者是owner权限,所以权限就收不回。结果管事的不知道是不小心还是不知道,使用root账号把项目所有者给删除了,导致3个项目都给删除了。 不幸中的万幸: 由于项目是处于收尾阶段,所以基本没开发,自己本地也在删除的前一天有拉取一次代码,所以代码应该是最新的,所以可以从本地恢复。但是还有一个关于发版的脚本工程代码我本地没有(因为我是刚接手这个项目),由于项目周期很长,创建这个项目的人员也离职了,所以比较难受,也不知道他还有没有保留原始代码。… 开始恢复:

  1. gitlab上创建新的project 这里直接用root账号进行的创建,防止删除成员,导致把项目删除了。
在这里插入图片描述
在这里插入图片描述
  1. 将本地项目关联刚刚新建的远程工程
代码语言:javascript
复制
cd existing_repo
git remote rename origin old-origin
git remote add origin http://xxxx.xx.xx.xx:8888/root/item-backend.git
git push -u origin --all
git push -u origin --tag

这样操作后,只要你在本地切过的分支和tag都能恢复,恢复的是本地的代码,如果本地不是最新的代码,那就会出现丢代码的情况.

  1. 将之前未切的分支恢复 运行git checkout uat此时会从old-origin创建一个新的uat分支,然后push到远程uat分支,由于远程恢复过程没有uat分支,所以在push时要加参数进行分支创建和推送,运行:git push origin uat
在这里插入图片描述
在这里插入图片描述
  1. 将最新分支代码设置为master分支

由于本地前端项目本地没有切过master分支,可以使用步骤三恢复master分支,也可以使用最新代码分支作为master分支,这里把本地的uat分支作为master分

代码语言:javascript
复制
# 在本地切换成要重命名的分支
   git checkout uat-xx
# 删除远程分支
   git push --delete origin uat-xx #或者  git push origin :uat-xx
# 重命名本地分支
   git branch -m uat-xxx maste
# 推送本地分支
   git push origin master 
# 同步分支
   git branch --set-upstream master origin/master

权限管理:

  1. 创建一个project owner的group
在这里插入图片描述
在这里插入图片描述
  1. 向project owner的group添加多个核心成员 这里添加多个核心人员,是防止后续又出现删除成员导致项目被删除。如果后续要删除owner权限的成员时,必须确认该项目的owner角色的成员不止一个,如果只有一个,需要赋予一个新的成员为owner角色才能删除
在这里插入图片描述
在这里插入图片描述

3.项目添加project owner的group权限

在这里插入图片描述
在这里插入图片描述

这时候再看project owner,发现多了一个项目

在这里插入图片描述
在这里插入图片描述

总结: 后续新建项目的时候,先新建一个group,然后再在group下新建项目;要删除owner角色的项目成员时,必须确认该项目的owner角色的成员不止一个,如果只有一个,需要赋予一个新的成员为owner角色才能删除,防止由于删除掉owner角色的成员,导致项目被删除。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/04/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档