迁移多个Git仓库的更简单方法?

时间:2018-07-27 14:07:10

标签: git shell

我最近刚刚编写了一个脚本,用于将远程Git服务器备份到本地服务器上。但是,我有大约45个不同的存储库,因此这需要复制和粘贴我的代码45次,并为每个存储库更改存储库名称。有没有更简单的方法可以完成我要完成的工作? (就编辑我的脚本而言)这是我的代码:

sudo rm -rf /home/<user>/<localRepoFolder>
git clone --mirror git@<remoteIP:repo> /home/<user>/<localRepos>/<repo>/$(date +%Y%m%d)
cd /home/<user>/<localRepos>/<repo>/$(date +%Y%m%d)
git remote rm origin
git remote add origin git@<localIP>
git push origin --all
git push --tags

此外,我将如何编辑脚本,以便可以保存2个最新备份,以防万一从本地服务器中删除它们后出现中断? if / else语句处理时间戳?

1 个答案:

答案 0 :(得分:0)

更快的方法是创建一个bash文件,如下所示:

PREPARE A REPO:

#!/usr/bin/env bash
if [ $# != 0 ]
then
name_repo="$*"
email=<your email>
blih -u $email repository create "$name_repo"
blih -u $email repository getacl "$name_repo"
git clone git@<git address>/$email/$name_repo
else
echo "Enter repository name"
fi

按主播

#!/bin/bash
if [ $# = 0 ]
then
commit_message="default commit message"
else
commit_message=$*
fi
git config user.name "<username>"
git config user.email "<mail / git acount>"
git add --all
git commit -m"$commit_message"
git push

和克隆:

#!/bin/bash
if [ $# == 1 ]
then
git clone git@<git address>/<email>/$1
fi

希望有帮助