我最近刚刚编写了一个脚本,用于将远程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语句处理时间戳?
答案 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
希望有帮助