Репозиторий можно перенести вместе с ветками, тегами и историей коммитов, но настройки сервисов и данные Bitbucket нужно проверить отдельно.
Способ 1: Через GitHub Desktop
После клонирования репозиторий содержит .git с remote на Bitbucket — кнопка Publish Repository не появится. Нужно удалить .git и создать новый репозиторий:
- Склонируйте репозиторий: File → Clone Repository → URL → вставьте HTTPS URL Bitbucket → Clone
- Откройте папку репозитория в Проводнике (Windows) или Finder (macOS)
- Покажите скрытые файлы и удалите папку
.git:
- Windows: Вид → Скрытые элементы → удалите папку.git
- macOS: Cmd+Shift+. (точка) → удалите папку.gitв корзину - Вернитесь в GitHub Desktop — он покажет экран «Can’t find …». Нажмите Remove
- Добавьте папку как новый репозиторий:
- Windows: File → New Repository… → Name: название папки → Local Path: папка-родитель → Create Repository
- macOS: Current Repository → Add → Create New Repository… → Name: название папки → Local Path: папка-родитель → Create Repository - Нажмите Publish Repository → снимите галочку Keep this code private → Publish Repository
История коммитов при этом не сохраняется. Чтобы перенести историю — используйте Способ 2 или 3.
Способ 2: Git mirror через командную строку
# 1. Клонировать с Bitbucket
git clone --bare https://bitbucket.org/username/repo.git
# 2. Зеркальный push на GitHub
cd repo.git
git push --mirror https://github.com/username/repo.git
# 3. Убрать временную папку и клонировать с GitHub
cd ..
rm -rf repo.git
git clone https://github.com/username/repo.git
--bare — только Git-данные. --mirror — копирует все ветки, теги и всю историю.
Способ 3: Импорт через GitHub
- Перейдите на github.com/new/import
- Вставьте Bitbucket URL
- При необходимости введите credentials (App Password для Bitbucket с 2FA)
- Выберите имя репозитория, Public/Private → Begin import
Что переносится
| Переносится | Не переносится |
|---|---|
| Код | Issues |
| История коммитов | Pull Requests |
| Все ветки | Pipelines |
| Теги | Wiki |
| Авторы коммитов | Branch permissions |
После миграции
Настройте GitHub Actions (замена Bitbucket Pipelines):
# .github/workflows/ci.yml
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run tests
run: npm test
Обновите remote у членов команды:
git remote set-url origin https://github.com/username/repo.git
git fetch
Также обновите: ссылки в README, CI/CD secrets, webhooks, документацию.
Сравнение платформ
| Функция | Bitbucket | GitHub |
|---|---|---|
| Бесплатные private | ✅ | ✅ |
| CI/CD | Pipelines | Actions |
| CI/CD минут (Free) | 50/мес | 2000/мес |
| Сообщество | Меньше | 100+ млн |
| Jira интеграция | Отличная | Есть, но хуже |
| Self-hosted | Bitbucket Server | GitHub Enterprise |
Частые проблемы
Authentication failed при 2FA: используйте App Password вместо обычного пароля (Bitbucket → Personal Settings → App Passwords).
Большой репозиторий (> 1 GB): удалите большие файлы через git filter-branch или BFG Repo-Cleaner перед миграцией.
💬 Комментарии (0)
Комментариев пока нет
Станьте первым, кто поделится мнением об этой статье!