迁移背景
有 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
,截图上一个: 好了,至此迁移完毕,在客户端换成新的服务器地址后,一切操作记录都依然存在