從GitHub鏡像到本地的GitLab

把公司的一些源碼放到了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"
GITLAB_GIT="[email protected]:${GITLAB_GROUP}/${GIT}"
 
#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 "\-------------------------------------------------"



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章