Git代码仓库的备份与恢复

2020-07-16  本文已影响0人  夜色001

前言

软件企业中,代码就是企业的资产,保证代码安全,就是保证资产的安全。大部分公司目前都使用git作为代码管理工具。本文即介绍如何对git代码仓库进行备份和恢复。仓库管理工具为gitlab。

使用技术

核心方法就两个git命令,前者用于备份代码仓库,后者用于恢复代码仓库
git clone --mirror http://xxxx.git
git push --mirror http://xxxx.git

仓库备份恢复案例

以代码仓库http://192.168.0.11:9001/tymes/tymes.git为例。
前提条件:已输入并记录了git用户名密码,可使用以下命令记住密码

 git config --global credential.helper store

1、备份
执行:git clone --mirror http://192.168.0.11:9001/tymes/tymes.git,生成文件夹tymes.git
2、恢复
先在gitlab中创建新仓库tymes_bak,拷贝路径http://192.168.0.11:9001/tymes/tymes_bak.git
进入tymes.git文件夹,执行命令

 git push --mirror http://192.168.0.11:9001/tymes/tymes_bak.git

至此恢复完毕

参考定时备份案例

公司的代码仓库不只一个,我们要一次性备份所有仓库。并且要实现自动化按周期备份。故可以写一个shell脚本,自动备份。

gitpath_prefix=http://192.168.0.11:9001/
gitpath_name=(tymes/tymes.git tymes/tymes-report.git zcpt/front.git zcpt/service.git 132/cfjit.git common/MMSystem.git common/tycr-neo4j.git common/imserver.git common/push.git common/alert.git common/tyflow-ui.git bim/bim_front.git bim/bim_search.git bim/bim_service.git cutter/cutter_fast.git cutter/cutter_fast_vue.git)
bak=`(date +"%Y%m%d-%H%M%S")`
echo $bak
for name in "${gitpath_name[@]}"; 
do
   mkdir $bak
   cd $bak  
   echo "正在备份"$name 
   git clone --mirror $gitpath_prefix$name
   cd ..
done

保存为 bak.sh。在windows中可以利用git的shell窗口执行,有些机器上直接双击也可以执行。

上一篇下一篇

猜你喜欢

热点阅读