Git仓库迁移
适用于单个仓库进行迁移.
# 填写项目名, 旧仓库地址, 新仓库地址
Name_Project="temp-oldRepo"
OLD_REMOTE_REPO="git@gitee.com:jrri/$Name_Project.git"
NEW_REMOTE_REPO="git@gitee.com:jrri/temp-newRepo.git"
# 克隆旧仓库
git clone $OLD_REMOTE_REPO $Name_Project
## 获取所有分支
cd $Name_Project
git branch -r
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
# 修改远程绑定
git remote set-url origin $NEW_REMOTE_REPO
# 推送新仓库
git push --all origin
多个仓库进行迁移
#/bin/bash
REPO_LIST="
repo1
repo2
repo3
"
# 填写项目名, 旧仓库地址, 新仓库地址
ACCOUNT="myname"
PASSWD="mypassword"
SCRIPT_DIR=`readlink -f $0|xargs dirname`
for i in $REPO_LIST; do
OLD_REMOTE_REPO="http://$ACCOUNT:$PASSWD@172.10.1.1/IT4IT/$i.git"
NEW_REMOTE_REPO="http://172.10.1.2/IT4IT/$i.git"
NEW_REMOTE_REPO_WITH_ACCOUNT="http://$ACCOUNT:$PASSWD@172.10.1.2/IT4IT/$i.git"
# 克隆旧仓库
git clone $OLD_REMOTE_REPO $i
## 获取所有分支
cd $i
git branch -r
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all
git checkout DEV
# 修改远程绑定
git remote set-url origin $NEW_REMOTE_REPO_WITH_ACCOUNT
# 推送新仓库
git push --all origin
# 回到上级目录
cd $SCRIPT_DIR
done