Перенос проекта 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.