意外缘由: 项目上人员离职,gitlab的一些权限需要回收,但是离职人员是项目的所有者是owner权限,所以权限就收不回。结果管事的不知道是不小心还是不知道,使用root账号把项目所有者给删除了,导致3个项目都给删除了。 不幸中的万幸: 由于项目是处于收尾阶段,所以基本没开发,自己本地也在删除的前一天有拉取一次代码,所以代码应该是最新的,所以可以从本地恢复。但是还有一个关于发版的脚本工程代码我本地没有(因为我是刚接手这个项目),由于项目周期很长,创建这个项目的人员也离职了,所以比较难受,也不知道他还有没有保留原始代码。… 开始恢复:
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都能恢复,恢复的是本地的代码,如果本地不是最新的代码,那就会出现丢代码的情况.
git checkout uat
此时会从old-origin创建一个新的uat分支,然后push到远程uat分支,由于远程恢复过程没有uat分支,所以在push时要加参数进行分支创建和推送,运行:git push origin uat
由于本地前端项目本地没有切过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
权限管理:
3.项目添加project owner的group权限
这时候再看project owner,发现多了一个项目
总结: 后续新建项目的时候,先新建一个group,然后再在group下新建项目;要删除owner角色的项目成员时,必须确认该项目的owner角色的成员不止一个,如果只有一个,需要赋予一个新的成员为owner角色才能删除,防止由于删除掉owner角色的成员,导致项目被删除。