美文网首页
Git代码仓库的备份与恢复

Git代码仓库的备份与恢复

作者: 夜色001 | 来源:发表于2020-07-16 10:13 被阅读0次

    前言

    软件企业中,代码就是企业的资产,保证代码安全,就是保证资产的安全。大部分公司目前都使用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窗口执行,有些机器上直接双击也可以执行。

    相关文章

      网友评论

          本文标题:Git代码仓库的备份与恢复

          本文链接:https://www.haomeiwen.com/subject/ceawqktx.html