Изменение Git URL для всех локальных репозиториев - PullRequest
0 голосов
/ 08 мая 2018

Недавно мы перенесли сервер Stash Git для использования HTTPS, а не HTTP. Теперь нам нужно обновить URL в каждом из репозиториев, чтобы использовать новый URL с HTTPS. Есть ли способ, которым мы можем достичь этого, не заходя в каждый из конфигураций Git репозитория и не меняя URL? Проблема в том, что у нас есть почти 60 локальных репозиториев, которые мы должны обновить.

Любое решение по обновлению URL за один раз приветствуется.

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Каждый разработчик может глобально настроить параметр url.<base>.insteadOf:

git config --global url."https://your-domain".insteadOf http://your-domain

Это приведет к тому, что URL-адреса, начинающиеся с http://your-domain, будут динамически переписаны для начала с https://your-domain:

Любой URL-адрес, начинающийся с этого значения, будет перезаписан для запуска вместо <base>. В тех случаях, когда какой-либо сайт обслуживает большое количество репозиториев и обслуживает их множественными методами доступа, а некоторым пользователям необходимо использовать разные методы доступа, эта функция позволяет пользователям указывать любой из эквивалентных URL-адресов, а Git автоматически переписывает URL-адрес в лучшая альтернатива для конкретного пользователя, даже для никогда ранее не встречавшегося хранилища на сайте. Если более чем одна строка соответствует одному URL, используется самое длинное соответствие.

0 голосов
/ 08 мая 2018

Вы можете использовать sed, но будьте осторожны;)

sed -i 's/git.oldserver.com/git.newserver.com/' /path/to/repos/*/.git/config

Это сделает замену строки в строке, заменив старую строку новой. Вам просто нужно указать путь ко всем файлам конфигурации git.

...