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
posted @ 2021-10-14 14:28  Jrri  阅读(65)  评论(0编辑  收藏  举报