首页 > 编程知识 正文

gitlab 删除项目 恢复,gitlab 恢复

时间:2023-05-06 10:26:49 阅读:239885 作者:2392

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

gitlab上创建新的project
这里直接用root账号进行的创建,防止删除成员,导致把项目删除了。

将本地项目关联刚刚新建的远程工程 cd existing_repogit remote rename origin old-origingit remote add origin http://xxxx.xx.xx.xx:8888/root/item-backend.gitgit push -u origin --allgit push -u origin --tag

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

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

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

# 在本地切换成要重命名的分支 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

权限管理:

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

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

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。