把公司的一些源碼放到了github上做開源,直接在github上進行開發,但擔心被牆,所以在公司的gitlab上做了一下鏡像,隨時保持同步,當github不可用時還有容災方案
1.創建 /work/git_script/github_tmp_repo 作爲臨時目錄
2.編寫下面的腳本
3.加入crontab,當然也可以用github的hook來觸發,這樣會更實時一些
#!/bin/sh
GIT_REPO=/work/git_script/github_tmp_repo
##GITLab
GIT="your_project_name.git"
GITLAB_GROUP="gitlab_project_namespace"
#GITHub
GITHUB_ORG="your_project_organization"
GITHUB_GIT="https://github.com/${GITHUB_ORG}/${GIT}"
echo "/-------------------------------------------------"
echo "gitlab:${GITLAB_GIT}"
echo "github:${GITHUB_GIT}"
echo "begin_time:"`date`
#Temp Dir
GIT_DIR=${GIT_REPO}/${GIT}
cd ${GIT_REPO}
rm -rf ${GIT_DIR}
echo `git clone --bare ${GITHUB_GIT}`
echo "clone result:"$?
cd ${GIT_DIR}
git push --mirror ${GITLAB_GIT}
echo "push result:"$?
cd ..
rm -rf ${GIT_DIR}
echo "end_time:"`date`
echo "\-------------------------------------------------"