您的位置:首页 > 其它

Git 服务器镜像迁移 - 携带提交日志,tag,branch。。

2017-02-26 15:52 183 查看
摘要: 近期由于业务原因,服务器要整体迁移。。。除去系统应用,数据库等的迁移外,博主发现最明显的是git 上面的几十个项目要迁移,之前貌似还真没有过,考虑到项目众多,记录迁移方法的同时也放出批量迁移的shell 脚本,希望大家能用上。。

迁移背景

有 A,B 两台服务器,本文要将 A 服务器下的git 项目 统一迁移到 B 服务器,为了迁移简便,B服务器的git存放目录保持与A服务器一致 : /data/git/

1. B服务器初始化git环境

在 B 服务器上安装git 以及创建git用户,shell访问控制等,这里不多说,请参照
搭建GIt服务器

###2. 导出A服务器项目列表

迁移首先要知道迁移的项目明细都有什么,博主这里之前为了方便都存放在了同一个目录下,所以很简便了就 :

cd /data/git  --存放目录
ls >> list.cfg

这样就得到了项目列表,当然如果其他同学的具体不再一个目录下,就要根据实际情况来了,这一步主要是得到一个项目列表,每一行是一个项目的地址,使用相对于git主目录的相对地址,比如博主这里稍微截图一下:

,私密项目只能 mark 一下了,哈哈

3. 将 得到的列表文件上传到B服务器的git主目录下,这里我的也是 /data/git

直接上命令了:

scp /data/git/list.cfg root@xxxx:/data/git

4.在B服务器根据项目列表克隆项目

克隆的本身要克隆 bare 版本的库作为服务库,并且克隆之后将目录所有权限改为 git:

git clone --bare git@xxxxx:/data/git/项目目录
chown -R git 项目目录

,批量的脚本如下:

cat list.cfg | while read line
do
echo "`git clone --bare git@xxxx:/data/git/${line}`"
echo "`chown -R git ${line}`"
done

,截图上一个:



好了,至此迁移完毕,在客户端换成新的服务器地址后,一切操作记录都依然存在
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Git 迁移