Git 服务器镜像迁移 - 携带提交日志,tag,branch。。
2017-02-26 15:52
183 查看
摘要: 近期由于业务原因,服务器要整体迁移。。。除去系统应用,数据库等的迁移外,博主发现最明显的是git 上面的几十个项目要迁移,之前貌似还真没有过,考虑到项目众多,记录迁移方法的同时也放出批量迁移的shell 脚本,希望大家能用上。。
搭建GIt服务器
###2. 导出A服务器项目列表
迁移首先要知道迁移的项目明细都有什么,博主这里之前为了方便都存放在了同一个目录下,所以很简便了就 :
这样就得到了项目列表,当然如果其他同学的具体不再一个目录下,就要根据实际情况来了,这一步主要是得到一个项目列表,每一行是一个项目的地址,使用相对于git主目录的相对地址,比如博主这里稍微截图一下:
,私密项目只能 mark 一下了,哈哈
,批量的脚本如下:
,截图上一个:
好了,至此迁移完毕,在客户端换成新的服务器地址后,一切操作记录都依然存在
迁移背景
有 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服务器迁移(换到新Linux服务器下,保留原来的提交记录)
- git工程迁移(修改提交服务器地址)方法
- 迁移git库到一个新地址,保留history,branch,tag
- Git 打Tag 并提交到服务器
- 1git命令的使用,查看git仓库状态,添加文件到git跟踪,git提交,查看git分支,查看git仓库日志信息,切换git分支,解决git分支合并后出现冲突的问题
- git学习6:本地文件提交到github服务器上
- Git 服务器提交材料及其常用命令
- git 本地仓库和远程服务器仓库没有一样的提交,用git pull出错
- git迁移到svn时原有历史提交中出现过冲突导致git svn dcommit出错的解决办法
- git tag 给提交内容打标签
- git reflog 和git log :no branch git 提交方式
- Git使用SSH提交代码到服务器出现 permission denied (publickey).
- 设置了镜像的服务器的SQL 2008 数据库的收缩日志
- 1.git学习分享--新建本地仓库提交到服务器
- git服务器提交代码的总结
- eclipse中git插件无法向远程仓库提交tag的问题
- SVN 无法连接服务器 不能查看日志 不能提交的代码 解决办法
- git push能否删除服务器上的提交
- 显示git提交日志时如何忽略cherry-pick的提交
- git推送tag到远端服务器