feat: git remote switch also reconfigures all branches
This commit is contained in:
1 file changed
+13
-15
@@ -3,21 +3,19 @@
|
||||
set -e
|
||||
|
||||
origin=$(git remote get-url origin)
|
||||
git_branch=$(git branch | grep '*' | tr -d ' *')
|
||||
if [[ $(echo "$origin" | awk -e '/https/') != "" ]]; then
|
||||
git_host=$(echo "$origin" | cut -d "/" -f 3)
|
||||
git_repo=$(echo "$origin" | cut -d "/" -f 4-)
|
||||
git remote remove origin
|
||||
git remote add origin git@$git_host:/$git_repo
|
||||
git fetch
|
||||
git branch --set-upstream-to=origin/$git_branch $git_branch
|
||||
echo "Updated to SSH url git@$git_host:/$git_repo, for branch $git_branch"
|
||||
git_url="git@$(echo "$origin" | cut -d "/" -f 3):/$($(echo "$origin" | cut -d "/" -f 4-))"
|
||||
else
|
||||
git_host=$(echo "$origin" | cut -d "@" -f 2 | cut -d ":" -f 1)
|
||||
git_repo=$(echo "$origin" | cut -d ":" -f 2 | cut -d "/" -f 2-)
|
||||
git remote remove origin
|
||||
git remote add origin https://$git_host/$git_repo
|
||||
git fetch
|
||||
git branch --set-upstream-to=origin/$git_branch $git_branch
|
||||
echo "Updated to HTTPS url https://$git_host/$git_repo, for branch $git_branch"
|
||||
git_url="https://$(echo "$origin" | cut -d "@" -f 2 | cut -d ":" -f 1)/$(echo "$origin" | cut -d ":" -f 2 | cut -d "/" -f 2-)"
|
||||
fi
|
||||
git_branches=$(git branch | grep '*' | tr -d ' *')
|
||||
git remote remove origin
|
||||
git remote add origin $git_url
|
||||
git fetch
|
||||
|
||||
echo "New git url $git_url, updating branches"
|
||||
for branch in $git_branches; do
|
||||
git checkout $branch
|
||||
git branch --set-upstream-to=origin/$branch $branch
|
||||
echo "Branch $branch configured to track on origin/$branch"
|
||||
done
|
||||
Reference in new issue
Block a user