git拉取、推送所有分支及標簽


從origin1推送到origin2

git push origin2 'refs/remotes/origin1/*:refs/heads/*'

# 推送后帶有后綴demo01
git push origin2 'refs/remotes/origin1/*:refs/heads/demo01/*'

# 推送指定分支
git push origin2 'refs/remotes/origin1/dev:refs/heads/dev'

拉取所有分支到本地

git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all

拉取所有標簽到本地

git fetch origin --prune

切換遠程倉庫

推送所有分支

git push --mirror

推送所有標簽

git push origin --tags

git遷移腳本

#!/bin/bash

export oldUrl=$1
export newUrl=$2
export repoName=$3

printf "oldUrl: %s\nnewUrl: %s\nrepoName: %s\n" $oldUrl $newUrl $repoName

[[ -z "${oldUrl}" ]] && echo "不能為空" && exit
[[ -z "${newUrl}" ]] && echo "不能為空" && exit
[[ -z "${repoName}" ]] && echo "不能為空" && exit

printf "克隆原倉庫"
cd repo || exit
git.exe clone --progress -v "${oldUrl}"
cd ${repoName} || exit
#git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
#git fetch --all
#git pull --all
#git fetch origin --prune


# 原倉庫
# dev -> dev-origin

# git remote change new repo
echo "增加新倉庫"
git remote rename origin origin-old
git remote add origin "${newUrl}"

echo "拉取所有倉庫分支"
git fetch origin
git fetch origin-old

echo "刪除本地dev分支"
git branch -D dev





# origin/dev -> origin/dev-bak
echo "備份分支"
git checkout -b dev-origin origin-old/dev
git checkout -b dev-yanshi4-11 origin-old/yanshi4-11
git checkout -b dev-bak origin/dev

echo "新倉庫切出dev分支"
git checkout -b dev origin/dev

echo "復制ci配置到臨時文件"
mkdir -p ../tmp/ || exit
cp .gitlab-ci.yml Dockerfile ../tmp/ || exit

echo "切回舊倉庫dev分支"
git checkout master
git branch -D dev
git checkout -b dev origin-old/yanshi4-11

echo "配置ci配置"
mv -f ../tmp/* ./ || exit
mv -f ../tmp/.gitlab-ci.yml ./  || exit
git add .
git commit -m "ci適配"

echo "刪除舊倉庫遠程配置,防止誤刪"
git remote remove origin-old


echo "推送所有分支"
git push --progress "origin" dev-origin
git push --progress "origin" dev-yanshi4-11
git push --progress "origin" dev-bak
git push --force --progress "origin" dev:dev


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM