Перенос проекта GIT на другой сервер

Обновлено и опубликовано Опубликовано:

В данной инструкции мы рассмотрим несколько примеров, как можно выполнить перенос со всеми настройками git-проекта в другой git-репозиторий. Предполагается, что у нас уже подготовлен новый репозиторий, куда нужно отправить проект, а также у нас есть представление о работе с командой git. В конце инструкции приведены соответствующие ссылки.

Полный перенос проекта

Сначала рассмотрим вариант переноса проекта как есть — со всеми настройками, ветками, коммитами, тегами и так далее. Для этого на свой рабочий компьютер открываем командную строку и клонируем проект с опцией mirror:

git clone --mirror <путь до репозитория> <папка>

Например:

git clone --mirror https://gitlab.dmosk.ru/master/test.git test

* данной командой мы склонируем проект по пути https://gitlab.dmosk.ru/master/test.git и сохраним его в текущем каталоге, папке test.

Перейдем в созданную папку:

cd test

На данном этапе у нас есть полная копия проекта, но она привязана к текущему репозиторию. Это можно посмотреть командой:

git remote show origin

Мы увидим что-то на подобие:

* remote origin
  Fetch URL: https://gitlab.dmosk.ru/master/test.git
  Push  URL: https://gitlab.dmosk.ru/master/test.git

Отвязываем его командой:

git remote rm origin

Создаем пустой проект в новом репозитории. Смотрим ссылку на него и делаем привязку с нашим локальным проектом, например:

git remote add origin https://gitlab.com/dmosk.ru/test.git

* где https://gitlab.com/dmosk.ru/test.git — путь до нового репозитория.

Отправляем файлы в подключенный репозиторий:

git push origin --all

А также теги:

git push --tags

Проект перенесен.

Выборочный перенос

Предположим, нам нужно перенести не все ветки. Это тоже можно сделать.

Начинаем с клонирования проекта на локальный компьютер:

git clone <путь до репозитория> <папка>

Например:

git clone https://gitlab.dmosk.ru/master/test.git test

* данной командой мы склонируем проект по пути https://gitlab.dmosk.ru/master/test.git и сохраним его в текущем каталоге, папке test.

Перейдем в созданную папку:

cd test

Смотрим список всех веток командой:

git branch -a

Мы должны увидеть одну основную ветку, как закаченную, остальные с префиксом remotes/origin/.

Переключаемся на те ветки, которые нам нужно перенести в новый репозиторий, например:

git checkout branch1

git checkout branch2

Можно еще раз посмотреть на список веток:

git branch -a

Мы должны увидеть, что загруженные ветки стали без префикса remotes/origin/.

Загрузим теги:

git fetch --tags

И так, у нас есть копия проекта с нужными нам ветками, и она привязана к текущему репозиторию. Проверим:

git remote show origin

Мы увидим что-то на подобие:

* remote origin
  Fetch URL: https://gitlab.dmosk.ru/master/test.git
  Push  URL: https://gitlab.dmosk.ru/master/test.git

Отвязываем его командой:

git remote rm origin

Создаем пустой проект в новом репозитории. Смотрим ссылку на него и делаем привязку с нашим локальным проектом, например:

git remote add origin https://gitlab.com/dmosk.ru/test.git

* где https://gitlab.com/dmosk.ru/test.git — путь до нового репозитория.

Отправляем файлы в подключенный репозиторий:

git push origin --all

А также теги:

git push --tags

Проект перенесен.

Читайте также

Данная информация также может быть полезной:

1. Шпаргалка по работе с командами git.

2. Установка веб-инструмента GitLab на CentOS.

3. Установка веб-инструмента GitLab на Linux Ubuntu Server.

# DevOps # Серверы
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет