美文网首页
GitLab代码迁移复盘

GitLab代码迁移复盘

作者: dlstone | 来源:发表于2018-06-27 23:44 被阅读0次

背景:公司由于一些问题,需要将外网GitLab上的代码迁移至内网GitLab,中间遇到一些坑在此记录一下。

1.Git两种协议及适应场景

一个Git项目最重要的文件是.git文件,对代码的操作其实是对.git文件的操作(如拉取代码,推送代码等)。Git常用的两种协议:SSH或HTTPS,我将根据自己的理解,说说这两种协议各自应用场景;

HTTPS:每次访问都要求输入用户名和密码,可在文件中保存密码防止重复输入

设置git config --global credential.helper store,默认会在用户目录下创建.git-credentials文件,里面保存账户名和密码;取消保存:git config --global credential.helper "",也可以直接修改.gitconfig文件中对应属性值;

访问链接:https://gitlab.com/dlstone/test.git

或者 https://username:password@gitlab.com/dlstone/test.git(URL中携带用户名和密码)

适合场景:不同项目在同一repository中有相同账号名和密码;

SSH:使用公私钥来访问,使用ssh-keygen生成

设置ssh-keygen参考链接:

创建密钥:https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/

配置密钥:https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/

访问格式:git@gitlab.com:dlstone/test.git

适合场景:不同项目在不同repository中有不同账号名和密码;

2.GitLab项目导入

新建项目,选择Import project from Git repository URL,按照给出的样例拼接URL即可;

遇到问题:新建项目每个导入选项都有详细说明,在不熟悉的情况下,没有研究每个选项的具体作用就直接动手实践,导致浪费了不少时间。以后在类似的场景,首先应该研究每个导入功能的适用场景,从中选择最佳实践。

3.wiki迁移

1.将需要迁移的wiki内容clone到本地;

2.将新项目的wiki内容clone到本地;

3.拷贝wiki内容至新项目并提交;

wiki拷贝迁移有个问题,以往的提交日志丢失;wiki与工程仓库是两个独立的.git文件,需要区分两者的差别;

4.应用部署脚本中仓库地址替换

遇到的问题:迁移的项目工程多,每个工程的部署脚本都需要修改,可使用sed,grep命令来批量替换字符串(MAC适用); 

替换单个文本中字符串:sed -i "" "s/{regular_expression}/{replacement}/g" test.txt

替换当前目录下匹配的字符串:sed -i "" "s/{regular_expression}/{replacement}/g" `grep "{regular_expression}" -rl ./`

5.Git Submodule处理

添加:对于主工程来说添加submodule就像添加一个文件,所以需要 add 并 commit

添加submodule:git submodule add https://gitlab.com/dlstone/child.git

添加当前目录下所有文件:git add . 

提交本地:git commit -m "add submodule"   

push到服务器:git push origin maser 

clone:与普通文本不一样,对于含有submodule的工程需要做特殊处理

 clone代码:git clone https://gitlab.com/dlstone/test.git

子工程初始化:git submodule init   

查看状态:git submodule 

更新:git submodule update --remote

更新:submodule有更新,首先将submodule工程的修改提交,然后根据以下步骤更新主工程

更新:git submodule update --remote   

添加当前目录下所有文件:git add . 

提交本地:git commit -m "add submodule"   

push到服务器:git push origin maser 

5.Jenkins配置修改

修改Repositories地址和认证

修改submodule配置

删除部署脚本中的submodule命令,不删除会报错(第2步已配置,可删除)

相关文章

  • GitLab代码迁移复盘

    背景:公司由于一些问题,需要将外网GitLab上的代码迁移至内网GitLab,中间遇到一些坑在此记录一下。 1.G...

  • git远程仓库迁移

    公司从gogs迁移到gitlab需要迁移代码

  • GitLab代码迁移

    背景:由于之前一直在自己的gitlab上开发,后来公司要求将代码迁移到公司地址上,因此要原封不动的将代码迁移过来(...

  • 从SVN迁移到GitLab

    之前公司代码版本管理用的都是 SVN ,最近搭了 GitLab 。所以想把代码从 SVN 迁移到 GitLab 上...

  • gitlab 项目代码迁移

    gitlab 项目代码迁移 将原来服务器上的项目代码迁移到另一台服务器上。 首先新建一个空文件,将原服务器代码取下...

  • Gitlab代码工程迁移

    由于项目需要,有时可能需要将代码工程从一个gitlab服务器迁移至另一个gitlab服务器。下面介绍三种迁移的方式...

  • 迁移仓库

    从Gerrit迁移代码到Gitlab 1.先在Gitlab新建仓库,随便添加个readme之类的文件(原有仓库有代...

  • Push master to origin/master was

    公司代码迁移,从码云迁到GItLab ,事后在master开发时,push代码,总会显示Push master t...

  • Push master to origin/master was

    公司代码迁移,从码云迁到GItLab ,事后在master开发时,push代码,总会显示Push master t...

  • gitlab 项目代码迁移(转)

    将原来服务器上的项目代码迁移到另一台服务器上。 首先新建一个空文件,将原服务器代码取下来。 git clone h...

网友评论

      本文标题:GitLab代码迁移复盘

      本文链接:https://www.haomeiwen.com/subject/xbgiyftx.html