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窗口执行,有些机器上直接双击也可以执行。