Назад | Перейти на главную страницу

Переместить репо с простого git на сервер GitLab

У меня два сервера, старый сервер работает просто git с тремя репозиториями под /opt/. Эти проекты теперь должны быть перенесены на новый сервер, где я решу запустить gitlab для графического интерфейса и для того, чтобы иметь возможность приглашать друзей для изучения программирования и иметь более простое место для просмотра и управления проектами.

Однако при переходе я хочу сохранить исправления моих старых кодовых баз. Как-то я думал, что просто делаю scp -r old-server.net:/opt/project.git /gitlab/ было бы достаточно, но это не удается.

Я перешел к gitlab и создал новое репо только для того, чтобы получить структуру папок, которая создала вики и папку с кодом с именем /gitlab/project.git с той же структурой папок, что и на старом сервере (очевидно, без кода), и проект отлично загружается в gitlab, но потом я сделал rm -rf project.git и сделал scp ... и теперь я получаю 500 We're sorry, but something went wrong..

Я предполагаю, что исправления и, возможно, URL-адрес в папке сервера неверны, но я ничего не могу найти, просматривая файлы вручную или через документацию на gitlab.

Кто-нибудь делал что-то подобное?

Заранее спасибо!

Добавьте новый пульт gitlab в существующий репозиторий и нажмите:

git remote добавить gitlab url-to-gitlab-repo

git push мастер gitlab

Часто самые простые базовые решения работают ... разрешения, всегда проверяйте свои разрешения.

chown -R git.git /gitlab/project.git/

Я предполагаю, что у вас есть несколько репозиториев, которые вы хотите включить в свой экземпляр GitLab.

GitLab предоставляет для этого массовый метод. Я добавил около 250 репо без проблем. Скопируйте файлы git в новое место на сервере GitLab. Я буду использовать каталог с именем «import». Вы можете добавить "XXX" (или даже XXX / YYY), если вам нужно дополнительное местоположение в вашем проекте:

# Use sudo as needed, but it's important to do this
# using the same username than the final GitLab repo.
rsync -av /your/repo/location/* ./import/XXX
# give GitLab  full access
chown git:git ./ -R
# Later GitLab will modify the source and turn into a bundle
chmod 02777 -R ./*.git
# now the real work. Note that the source is import and not import/XXX
gitlab-rake gitlab:import:repos['./import/']

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