前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >『 利器篇 』GitLab仓库的迁移

『 利器篇 』GitLab仓库的迁移

作者头像
程序手艺人
发布2020-01-13 16:56:40
2.8K0
发布2020-01-13 16:56:40
举报
文章被收录于专栏:程序手艺人

平时需要做Git仓库的迁移, 主要由两种方案实现 :

  1. 通过git clone --mirror方式
代码语言:javascript
复制
// 克隆旧项目的镜像
git clone --mirror old.git (old.git 为旧项目的git地址) 会clone 仓库下的所有分支
//进入项目目录
cd old.git
//老项目的地址替换成新项目
git remote set-url --push origin new.git (new.git 为新项目的git地址)
//将镜像推到远程
git push origin master 
  1. 通过移除old仓库的链接
代码语言:javascript
复制
cd existing_repo
git remote rename origin old-origin
git remote add origin ssh://git@gitlab.xxx.com:xxx/xxx/1.git
git push -u origin --all
git push -u origin --tags
  1. 通过特定的需求写的小工具
代码语言:javascript
复制
//old项目的仓库备份到新项目
dir_name="$PWD"
all=`find  ${dir_name} -name "*.git"` # 查找所有.git仓库
for i in $all
do
    if [ -d $i ]
    then
        cd $i/
        tmp=${i##*/}
        echo "#### tmp : $tmp"
        git push --mirror ssh://git@gitlab.xxxx/demp/$tmp
        # git push --mirror git@your_ip:git/$i
        cd -
    fi
done
代码语言:javascript
复制
//本地迁移特定分支的仓库
BASE_PATH="/tmp"
dir_name="$PWD"
echo "#### dir_name $dir_name"
all=`cat repotmp` //repotmp 存放的需要迁移仓库的路径
for i in $all
do
    echo "$i"
    mkdir -p $i
    cd $i 
    git clone $BASE_PATH$i  // 本地直接克隆
    git checkout -b master
    cd -
done 
GitLab API的方式建立仓库

按照官方提供的API方式创建仓库GitLab API Docs

其中PRIVATE-TOKEN需要User Settings->Access Tokens获取

namespace_id对应的是项目组中的zGroup id

代码语言:javascript
复制
// 建立仓库
info="name=$project&path=$project&wiki_enabled=no&public_jobs=true&public=true&namespace_id=135&default_branch=master&private_token=xxxxxx"
 curl -d $info "http://gitlab.xxxxxx/api/v4/projects"
  • 特定需求写的小工具
代码语言:javascript
复制
//GitLab上新建avs_client和firmware仓库
projects="fip \
avs_client \
firmware "
for project in $projects
do
	info="name=$project&path=$project&wiki_enabled=no&public_jobs=true&public=true&namespace_id=135&default_branch=master&private_token=xxxxx"
    curl -d $info "http://gitlab.xxxx.com:xxx/api/v4/projects"
done
参考
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/01/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GitLab API的方式建立仓库
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档