📝 Git и GitHub

Миграция с GitLab на GitHub

P
Автор
PyLand Team
📅
Опубликовано
06.05.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
455
🏆
Уровень
Эксперт

Git-репозиторий можно перенести на GitHub вместе с историей, ветками и тегами, но связанные с GitLab данные и настройки потребуют отдельной проверки.

Способ 1: Импорт через GitHub (самый простой)

  1. Перейдите на github.com/new/import
  2. Вставьте GitLab URL репозитория
  3. Для приватных репозиториев введите GitLab Personal Access Token:
    - GitLab → Settings → Access Tokens → scope read_repository
  4. Выберите имя репозитория на GitHub, Public/Private
  5. Нажмите Begin import

GitHub автоматически перенесёт код и всю историю.

Способ 2: Git mirror (полный контроль)

# 1. Клонировать с GitLab
git clone --bare https://gitlab.com/username/project.git

# 2. Зеркальный push на GitHub
cd project.git
git push --mirror https://github.com/username/project.git

# 3. Убрать временную папку
cd ..
rm -rf project.git

--bare — только Git-данные без рабочих файлов. --mirror — копирует все ветки, теги и refs.

Способ 3: Через GitHub Desktop

  1. File → Clone Repository → URL → вставьте GitLab HTTPS URL
  2. После клонирования: Publish repository

Что переносится

Переносится Не переносится
Код Issues
История коммитов Merge Requests
Все ветки CI/CD Pipelines
Теги Wiki
Авторы коммитов Labels, Milestones

CI/CD: GitLab → GitHub Actions

Было (.gitlab-ci.yml):

test:
  image: python:3.12
  script:
    - pip install -r requirements.txt
    - pytest

Стало (.github/workflows/ci.yml):

name: CI
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.12'
      - run: pip install -r requirements.txt
      - run: pytest

Обновите README бейджи

# Было (GitLab)
[![pipeline status](https://gitlab.com/username/project/badges/main/pipeline.svg)]

# Стало (GitHub)
![CI](https://github.com/username/project/actions/workflows/ci.yml/badge.svg)

Обновите remote у членов команды

git remote set-url origin https://github.com/username/project.git
git fetch

Checklist миграции

  • Создали репозиторий на GitHub
  • Перенесли код (git push --mirror)
  • Настроили GitHub Actions (заменили .gitlab-ci.yml)
  • Обновили README (бейджи, ссылки)
  • Настроили branch protection
  • Обновили CI/CD secrets
  • Уведомили команду об обновлении remote
  • Сделали GitLab-репозиторий read-only

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

Undo и Revert в GitHub Desktop: исправляем ошибки…

Коммит — не точка невозврата. GitHub Desktop позволяет спокойно пересобрать локальный коммит через Undo или...

📅 16.07.2026 👁️ 359
📝

История, diff и веб-коммиты на GitHub

GitHub позволяет читать историю проекта, открывать diff отдельных коммитов, смотреть изменения конкретного файла и даже...

📅 16.07.2026 👁️ 312
📝

Первый коммит в Git

Первый коммит начинается с создания репозитория, настройки имени автора и выбора файлов, которые действительно нужно...

📅 30.06.2026 👁️ 343
🎓 Продолжить обучение

В каких курсах используется этот материал

Перейдите к курсу, чтобы закрепить материал на практике.

Git & GitHub Desktop: Командная работа без боли Открыть программу курса