Подмена адреса удаленного репозитория


В git можно заменить какую-то часть адреса удаленного репозитория (часть remote адреса) во всех репозиториях использюя глобальный конфиг и также это даступо при настройке конкретного репозитория.

Упращаем переезд с Github <–> Gitlab <–> Bitbucket

Если к примеру вы переехали с Github на Gitlab и у вас локально множестфо проектов в которых нужно обновлять remote то можно сделать это глобально до тех пор пока не замените remote во всех репоззиториях или снова не понадобится пользоватся Github.

К примеру у нас есть следующий remote

origin  https://github.com/xorcare/example (fetch)
origin  https://github.com/xorcare/example (push)

чтобы фоново подменять его на Gitlab и получить такой результат

origin  https://gitlab.com/xorcare/example (fetch)
origin  https://gitlab.com/xorcare/example (push)

нужно выполнить следующие команды:

# замена адреса при скачивании "fetch"
git config --global url."https://gitlab.com".insteadOf "https://github.com"
# замена адреса при отправке "push"
git config --global url."https://gitlab.com".pushInsteadOf "https://github.com"

Github -> Bitbucket

git config --global url."https://bitbucket.org".insteadOf "https://github.com"
git config --global url."https://bitbucket.org".pushInsteadOf "https://github.com"

Gitlab -> Bitbucket

git config --global url."https://bitbucket.org".insteadOf "https://gitlab.com"
git config --global url."https://bitbucket.org".pushInsteadOf "https://gitlab.com"

Bitbucket -> Github

git config --global url."https://github.com".insteadOf "https://bitbucket.org"
git config --global url."https://github.com".pushInsteadOf "https://bitbucket.org"