Перенос репозитория Git на новый сервер

[ad_1]
⭐
Перенос репозитория Git на новый сервер
Предположим, ваша компания решает сменить поставщика хостинга кода или вы хотите перенести свой репозиторий Git на другой хост. Это случается не часто, но бывает.
Когда мне пришлось перенести несколько проектов Git на новый хост, мне потребовалось довольно много времени, чтобы найти точный метод. Сделав много попыток и пару неудачных, и внимательно прочитав документацию Git, я нашел надежный и эффективный способ. Тогда я подумал, что каждому разработчику будет полезно знать, как быстро и легко перенести репозиторий Git на новый хост. Самое главное — убедиться, что все ваши ветки, теги и история коммитов перемещены.
Давайте научимся делать это правильно
Во-первых, мы должны получить все удаленные ветки и теги из существующего репозитория в наш локальный индекс:
git fetch origin
Но даже если все ветки и теги были извлечены и существуют в локальном индексе, у нас все равно не будет их копии, которая была бы физически локальной. И для переноса репозитория требуется локальная копия.
Мы можем проверить наличие отсутствующих ветвей, для которых нам нужно создать локальную копию. Давайте перечислим все существующие ветки (локальные и удаленные), чтобы увидеть, не хватает ли нам каких-либо локальных копий:
git branch -a
* master
remotes/origin/develop
remotes/origin/master
remotes/origin/release/0.1
Из этого вывода мы можем легко сказать, есть ли у нас локальные копии всех удаленных ветвей: удаленные имеют префикс remotes/origin/
путь, а локальные — нет. Таким образом, только наша ветка master является локальной, тогда как remotes/origin/develop
и remotes/origin/release/0.1
не. Все в порядке — давайте просто создадим локальные копии:
git checkout -b develop origin/develop
git checkout -b release/0.1 origin/release/0.1
Создав локальные копии всего, мы можем еще раз проверить, все ли ветки с remotes/origin/
префикс имеет соответствующие локальные копии (показаны без префикса):
git branch -a
develop
master
* release/0.1
remotes/origin/develop
remotes/origin/master
remotes/origin/release/0.1
Теперь мы точно знаем, что все ветки в нашем репозитории хранятся локально, и мы готовы перенести репозиторий на новый хост.
На этом этапе предположим, что у нас есть URL-адрес нашего нового репозитория, скопированный с помощью SSH. Если нет, создайте новый репозиторий, и тогда у вас будет его URL-адрес, клонированный по SSH.
Давайте используем клонированный SSH URL-адрес нашего нового репозитория для создания нового удаленного в нашем существующем локальном репозитории, выполнив следующую команду:
git remote add new-origin git@github.com:manakor/manascope.git
Это даст нам два пульта для существующего репозитория: исходный (с именем origin
подключенный к существующему удаленному хосту) и новый (с именем new-origin
подключенный к новому хосту).
(В Git есть такая концепция «пультов», которые представляют собой просто URL-адреса других копий вашего репозитория. Имя origin
относится к исходному удаленному репозиторию; по соглашению он считается основным централизованным хранилищем.)
Теперь мы готовы отправить все локальные ветки и теги на новый удаленный сервер с именем new-origin
. Мы могли бы отправить каждую локальную ветку отдельно, но отправка всех веток одновременно была бы намного быстрее, если бы вы выполнили следующую команду Git:
git push --all new-origin
Давайте также поместим все теги в new-origin
с помощью этой команды Git:
git push --tags new-origin
Мы почти закончили. Давайте сделаем new-origin
удаленный по умолчанию, который будет направлять все будущие коммиты в новый репозиторий, который мы только что отправили. Для этого удалите старый удаленный репозиторий:
git remote rm origin
И переименовать new-origin
чтобы просто origin
чтобы он стал удаленным по умолчанию:
git remote rename new-origin origin
(Все привыкли, что пульт по умолчанию называется origin
. Итак, давайте сохраним стандарт, назвав наш основной централизованный репозиторий удаленным. origin
слишком.)
Круто, Сделано!
Теперь ваш репозиторий подключен к новому удаленному серверу (то есть к новому хосту), на котором будут храниться все ваши ветки и теги, а также история ваших коммитов. Кроме того, теперь все коммиты будут отправляться на новый удаленный хост.
Дальнейшее чтение на SmashingMag:
- Простой рабочий процесс от разработки до развертывания
- Современный контроль версий с помощью Git
- Станьте опытным пользователем командной строки с помощью Oh-My-ZSH и Z

(дс, аль, ил)
[ad_2]
Source: https://smashingmagazine.com
Заключение
Вы ознакомились с статьей — Перенос репозитория Git на новый сервер
Пожалуйста оцените статью, и напишите комментарий.