Импортировать существующий проект git в GitLab?
У меня есть учетная запись установки Gitlab, где я создал репозиторий "ffki-startseite"
Теперь я хочу клонировать репозиторий git://freifunk.in-kiel.de/ffki-startseite.git
в этот репозиторий со всеми коммитами и ветвями, поэтому я могу начать работать над ним в своей области.
Как его импортировать?
Ответы
Ответ 1
Перемещение проекта из GitHub в GitLab, включая проблемы, запросы на извлечение Wiki, Вехи, Метки, Примечания к выпуску и комментарии
Существует подробная инструкция по GitLab Docs:
https://docs.gitlab.com/ee/user/project/import/github.html
ТЛ; др
-
Убедитесь, что у всех пользователей GitHub, которые вы хотите отобразить на пользователей GitLab, есть:
- Учетная запись GitLab, вошедшая в систему с помощью значка GitHub - или -
- Учетная запись GitLab с адресом электронной почты, который совпадает с общедоступным адресом электронной почты пользователя GitHub.
-
На верхней панели навигации нажмите + и выберите Новый проект.
- Выберите вкладку "Импорт проекта", а затем выберите GitHub.
- Выберите первую кнопку, чтобы перечислить свои репозитории GitHub. Вы будете перенаправлены на страницу github.com для авторизации приложения GitLab.
- Нажмите Авторизовать gitlabhq. Вы будете перенаправлены обратно на страницу импорта GitLab, и все ваши репозитории GitHub будут перечислены.
- Перейдите к выбору репозиториев для импорта.
Но, пожалуйста, прочитайте страницу GitLab Docs для деталей и хуков!
(это не много)
Ответ 2
Мне удалось полностью экспортировать мой проект вместе со всеми коммитами, ветвями и тегами в gitlab с помощью следующих команд, выполняемых локально на моем компьютере:
Чтобы проиллюстрировать мой пример, я буду использовать https://github.com/raveren/kint в качестве исходного репозитория, который я хочу импортировать в gitlab. Я создал пустой проект с именем Kint
(в пространстве имен raveren
) в gitlab заранее, и он сказал мне, что http git url из вновь созданного проекта есть http://gitlab.example.com/raveren/kint.git
Команды являются агностическими для ОС.
В новом каталоге:
git clone --mirror https://github.com/raveren/kint
cd kint.git
git remote add gitlab http://gitlab.example.com/raveren/kint.git
git push gitlab --mirror
Теперь, если у вас есть локально клонированный репозиторий, который вы хотите использовать с новым удаленным, просто запустите следующие команды * там:
git remote remove origin
git remote add origin http://gitlab.example.com/raveren/kint.git
git fetch --all
* Предполагается, что вы не переименовали ваш удаленный мастер из origin
, в противном случае измените первые две строки, чтобы отразить его.
Ответ 3
Добавьте новый удаленный gitlab в существующий репозиторий и нажмите:
git remote add gitlab url-to-gitlab-repo
git push gitlab master
Ответ 4
Чтобы сохранить все теги и ветки
Просто запустите эту команду в existing Git repository
cd existing_repo
git remote rename origin previous-hosts
git remote add gitlab [email protected]:hutber/kindred.com.git
git push -u gitlab --all
git push -u gitlab --tags
Ответ 5
Вот шаги, предоставляемые Gitlab:
cd existing_repo
git remote rename origin old-origin
git remote add origin https://gitlab.example.com/rmishra/demoapp.git
git push -u origin --all
git push -u origin --tags
Ответ 6
rake gitlab: import: repos может быть более подходящим методом для массового импорта:
- скопируйте пустой репозиторий в
repos_path
(/home/git/repositories/group/repo.git
). Имя каталога должно заканчиваться на .git
и находиться в пространстве имен группы или пользователя.
- запустить
bundle exec rake gitlab:import:repos
Владелец будет первым администратором, и группа будет создана, если она еще не существует.
Смотрите также: Как импортировать существующий репозиторий Git в Gitlab?
Ответ 7
Это базовое перемещение одного репо в новое место. Я использую эту последовательность все время. С --bare исходные файлы не будут видны.
Откройте Git Bash.
Создайте голый клон хранилища.
git clone --bare https://github.com/exampleuser/old-repository.git
Зеркально нажмите на новый репозиторий.
cd old-repository.git
git push --mirror https://github.com/exampleuser/new-repository.git
Удалите временный локальный репозиторий, созданный на шаге 1.
cd ../
rm -rf old-repository.git
Почему зеркало?
Смотрите документацию git: https://git-scm.com/docs/git-push
--all выдвинуть все ветки (то есть ссылки под ссылками/головками/); нельзя использовать с другими.
--mirror Вместо того, чтобы называть каждую ссылку нажатием, указывает, что все ссылки под ссылками/(которые включают в себя, но не ограничиваются ссылками/головами/, refs/remotes/и refs/tags/) будут отражены в удаленном хранилище. Вновь созданные локальные ссылки будут отправлены на удаленный конец, локально обновленные ссылки будут принудительно обновляться на удаленном конце, а удаленные ссылки будет удален с удаленного конца. Это значение по умолчанию, если опция конфигурации remote..mirror установлена.
Ответ 8
git clone --mirror [email protected]:username/repo-name.git
git remote add gitlab ssh://[email protected]/username/repo.git
git push -f --tags gitlab refs/heads/*:refs/heads/*
Лучше сделать это по ssh, https может не работать