本地clone了仓库,但是需要把仓库对应远程origin中所有分支上传到另外一个仓库中gitee,原远程仓库已经无法访问;

# 本地clone了仓库,但是需要把仓库对应远程origin中所有分支上传到另外一个仓库中gitee

# 定义变量
SOURCE_REPO=origin
TARGET_REPO=gitee

# 获取所有分支
## show-ref 显示所有ref,通过 grep 进行过滤 ,通过awk及sed移除不必要的信息
brs=`git show-ref | grep -v HEAD | grep -E "refs/remotes/$SOURCE_REPO" | awk '{print $2}' |sed "s:refs/remotes/$SOURCE_REPO/::g"`
echo $brs

# 转换为数组
brs_array=( `echo $brs | tr "\n" " "` )
echo $brs_array

# 单个分支处理
for element in "${brs_array[@]}"
#也可以写成for element in ${brs_array[*]}
do
    echo start work with $element
    # checkout 到 detached 状态
    git checkout "origin/$element"
    # 命名新分支
    git checkout -b "$element"
    # 推送到 TARGET_REPO
    git push $TARGET_REPO "$element":"$element"
done
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐