Импортировать существующий проект 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 может не работать