centos7 搭建gitlabt服务器,并将svn迁移到git

git作为目前最好用,也最好的版本管理器,是几乎每个公司和程序都要会用的东西,而在公司内,搭建一个git服务器作为代码储存中心就尤为必要,毕竟不可能用开源的github吧,而肯定也不会愿意给github交钱用私服库。那就自己搭建一个git服务器。

鉴于svn太过老旧,而且也不如git好用,越来越多的公司,准备将svn替换成git,这也是现在的趋势,下面就记录一下,搭建一个git服务器,然后将svn迁移到git上:



第一步:git只是一个使用的工具,但是,基于git,为了给公司内所有人提供代码版本管理,就需要类似github一样的代码托管平台,但是在github上的所有项目强制是公开的,如果想要建私人库是需要钱的,所以公司一般不会这样,这就有了GitLab,一个类似于GitHub的免费的代码平台。可以使用浏览器正常浏览,就像github一样。于是,下面我们在服务器上安装GitLab: 以root用户进行操作

1.安装配置依赖:

yum install curl policycoreutils openssh-server openssh-clients  
systemctl enable sshd  
systemctl start sshd  
yum install postfix  
systemctl enable postfix  
systemctl start postfix  
firewall-cmd --permanent --add-service=http  
systemctl reload firewalld  


2.下载gitlab包并安装(按官网教程):

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee

这里安装需要较长时间,请耐心等待。



3。安装完成后,进行配置。

vim /etc/gitlab/gitlab.rb
## 修改下面设置为你自己的服务器IP和端口。
external_url 'http://192.168.9.55:80'


4。启动gitlab服务

gitlab-ctl reconfigure  #重载配置并启动

启动后出现下面字样则启动成功:

Running handlers:
Running handlers complete



5. 登陆gitlab。

启动成功后,直接登陆你设置的ip和端口。出现登陆界面,第一次登陆会直接需要设置管理员密码。设置后,管理员账号为root。用密码就可能登陆上gitlab,然后进行使用。



6。汉化gitlab。

gitlab搭建后,默认是英文的,由于中国的使用习惯,可以进行汉化,下面记录一下汉化的步骤:

①,首先安装git,并关闭gitlab服务先

gitlab-ctl stop
yum install git -y

② 然后用git来克隆代码

git clone https://gitlab.com/xhang/gitlab.git -b v10.3.3-zh

这是指定 v10.3.3 版本进行克隆下载,因为我这里gitlab的版本为10.3.3。但是默认安装gitlab时时安装的最新版本,所以,可以直接克隆最新的汉化版本,跟gitlab的版本是一样的,一一对应的。即如下即可

git clone https://gitlab.com/xhang/gitlab.git

③ 克隆下载后,进入下载的文件夹内,通过diff来中文版和英文版之间的不同,产生diff文件。

cd path ## git克隆下载的项目的路径
git diff v10.3.3 v10.3.3-zh > ../10.3.3-zh.diff

④ 回到上一级目录,通过diff文件,更新gitlab,然后重启gitlab服务,就可以生效了。

cd ..
yum install -y patch
patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < v10.3.3-zh.diff
gitlab-ctl start

⑤OK,然后gitlab就算是安装完成,访问本机IP的80端口,即可正常使用gitlab。如:




7. 将svn的代码库迁移到gitllab上, 注意,这里省略了gitlab上项目的创建,用户的创建,SSH密钥的配置, 全都是可视化操作,自己点点就会了,类似github

①,首先,在本地利用git svn clone 命令,将svn代码拉取到本地。需要先写好用户映射文件user.txt。需要将你要拉取的这个库,所有提交里有的人,都映射一个gitlab上的账号,这样才能在克隆的时候,不报错。可以查看svn的提交历史,按用户排列,方便查出所有用户,然后按下面的格式,写好映射文件:

格式: svn用户名 = git用户名<git用户对应的邮箱帐号>

格式: svn用户名 = git用户名<git用户对应的邮箱帐号>
yqdong = yqdong<×××@163.com>
user11 = yqdong<×××@163.com>
yyong = yyong<×××@gmail.com>
msfei = mashifei<×××[email protected]>


写好了用户映射文件,必须放在‪C:\Users\Amos\Desktop\user.txt,那么右键打开git bash 执行下面的命令,将svn库克隆成git

1.--no-metdata是不要导出svn 的附加信息,--trunk为主线,--branches为svn上的分支,还有--tag 标签参数可选,都先都直接跟svn库的目录即可。 用户文件路径如果是windows的,要用双斜线。
git svn clone svn_url --no-metadata --trunk=trunk --branches=branches --authors-file=‪C:\\Users\\Amos\\Desktop\\user.txt



②然后,等待克隆完成,如何是svn库的历史信息比较多的话,需要较长时间,耐心等待。直到完成。

克隆完成后,进入项目文件内,右键打开git bash 。添加gitlab 仓库的远程地址

git remote add origin gitlab_url    ## 添加gitlab远程仓库地址,在本地可以先做一些处理,再push到gitlab上,比如一些初始化类的,如添加忽略文件等。
git push -u origin master:master    ## 将master主分支推送到远程仓库
git push -u origin branch_name:branch_name    ## 如果有分支,也一一将分支推送到gitlab远程仓库



③ 然后,登陆gitlab上,查看自己推送的代码,是否正常,然后,可以将本地刚才导出的gitku删除,因为里面还有svn的信息,然后重新clone远程仓库到本地,进行开发



OK,到此,就完成了gitlab服务器的搭建,并将svn迁移到了gitlab上。接下来就可以用gitlab进行愉快的开发了。下一篇讲解一下git的常用开发工作流,和基础使用操作。使大家能在工作中,用好git进行协同开发。

猜你喜欢

转载自blog.csdn.net/weixin_41004350/article/details/78933626