专栏首页程序手艺人『 利器篇 』GitLab仓库的迁移

『 利器篇 』GitLab仓库的迁移

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

  1. 通过git clone --mirror方式
// 克隆旧项目的镜像
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仓库的链接
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. 通过特定的需求写的小工具
//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
//本地迁移特定分支的仓库
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

// 建立仓库
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"
  • 特定需求写的小工具
//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
参考

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Git 修改已提交的邮箱和用户信息

    实际过程中有的时候本地配置信息邮箱有误,导致git commit 提交作者的信息有误,这个时候就需要进行修改

    程序手艺人
  • 程序员如何用GitHub打造个人博客(一)

    程序手艺人
  • GitBlit服务器团队协作方式

    程序手艺人
  • git使用介绍

    git是一类分布式版本控制系统, 客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任...

    dogfei
  • Windows环境下msysgit下安装gitflow步骤

    双愚
  • git命令笔记 原

    git clone https://github.com/biaoyansu/15.x.git 克隆项目

    lilugirl
  • Git常用命令

    如果嫌输出信息太多,看得眼花缭乱的,可以试试git log --pretty=oneline

    得野
  • git merge用法

    1、每次发布版本之后,需要打tag。具体步骤是 先把开发分支的代码合并到master,在打tag.

    公众号iOS逆向
  • git搭建实例教程

    AI之禅
  • git和github详细配置教程

    AI之禅

扫码关注云+社区

领取腾讯云代金券