Решили переехать с Bitbucket на GitHub? Рассказываем как перенести репозитории правильно!
Зачем мигрировать?
Причины перехода на GitHub:
✅ Большое сообщество (100+ млн разработчиков)
✅ Лучше для портфолио
✅ GitHub Actions (мощный CI/CD)
✅ GitHub Pages (бесплатный хостинг)
✅ Больше интеграций
✅ Популярнее среди работодателей
Bitbucket всё ещё хорош для:
- Интеграция с Jira
- Корпоративныйsetup
- Pipelines (встроенный CI/CD)
Способ 1: Через GitHub Desktop (ЛЕГКО!)
Шаг 1: Клонируйте с Bitbucket
- Откройте Bitbucket репозиторий
- Скопируйте HTTPS URL
- GitHub Desktop → File → Clone Repository
- Вкладка URL → вставьте Bitbucket URL
- Clone
Шаг 2: Опубликуйте на GitHub
- После клонирования нажмите Publish repository
- Выберите имя и описание
- Public или Private
- Publish Repository
✅ Готово! Код перенесён с Bitbucket на GitHub!
Способ 2: Через командну строку
Полная миграция с историей
# 1. Клонируйте с Bitbucket (bare clone)
git clone --bare https://bitbucket.org/username/repo.git
# 2. Перейдите в папку
cd repo.git
# 3. Создайте репозиторий на GitHub.com
# Идите на github.com/new и создайте repo
# 4. Push зеркало на GitHub
git push --mirror https://github.com/username/repo.git
# 5. Удалите временную папку
cd ..
rm -rf repo.git
# 6. Клонируйте с GitHub для работы
git clone https://github.com/username/repo.git
Объяснение команд
--bare — клонирует только Git данные (без рабочих файлов)
--mirror — копирует ВСЁ:
- Все ветки
- Все теги
- Всю историю
- Все refs
Способ 3: Import от GitHub (АВТОМАТИЧЕСКИ!)
Через веб-интерфейс GitHub
- Идите на github.com/new/import
- Вставьте Bitbucket URL:
https://bitbucket.org/username/repo - Если приватный — введите credentials
- Выберите имя нового репозитория
- Public/Private
- Begin import
GitHub автомат ически:
- Клонирует код
- Перенесёт всю историю
- Перенесёт все ветки
- Создаст новый репозиторий
Займёт 5-15 минут.
Что переносится?
✅ Переносится
- Код (все файлы)
- История коммитов
- Ветки
- Теги
- Контрибьюторы (авторы коммитов)
❌ НЕ переносится
- Issues (задачи)
- Pull Requests
- Wiki страницы
- Build Pipelines
- Webhooks
- Branch permissions
Эти данные нужно переносить вручную или плагинами (редко нужно).
После миграции
1. Обновите README
Добавьте бейдж GitHub:
# My Project


2. Настройте GitHub Actions
Создайте .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
3. Добавьте CODEOWNERS
```.github/CODEOWNERS
* @username
/docs/ @docs-team
### 4. Настройте Branch Protection
1. Settings → Branches
2. Add rule для `main`
3. ✅ Require pull request reviews
4. ✅ Require status checks
### 5. Обновите ссылки
Везде где была ссылка на Bitbucket:
- README.md
- Документация
- CI/CD конфиги
- Webhooks
- Deployment scripts
Замените на GitHub URLs.
## Командная работа: переезд команды
### Уведомите команду
```markdown
## 🚀 Мы переехали на GitHub!
**Старый репозиторий (НЕ ИСПОЛЬЗУЙТЕ):**
https://bitbucket.org/team/project
**Новый репозиторий:**
https://github.com/team/project
**Действия:**
1. Удалите старый clone
2. Клонируйте с GitHub
3. Обновите remote в существующих клонах
Обновить remote в существующих клонах
Если у членов команды уже есть клон:
# Проверить текущий remote
git remote -v
# Изменить на GitHub
git remote set-url origin https://github.com/username/repo.git
# Проверить что изменилось
git remote -v
Миграция multiple репозиториев
Если нужно перенести 10+ репозиториев:
Скрипт для автоматизации
#!/bin/bash
# Список репозиториев
repos=(
"repo1"
"repo2"
"repo3"
)
for repo in "${repos[@]}"; do
echo "Migrating $repo..."
# Clone from Bitbucket
git clone --bare https://bitbucket.org/username/$repo.git
# Push to GitHub
cd $repo.git
git push --mirror https://github.com/username/$repo.git
# Cleanup
cd ..
rm -rf $repo.git
echo "$repo migrated!"
done
Сохраните как migrate.sh, сделайте executable и запустите:
chmod +x migrate.sh
./migrate.sh
Сравнение платформ
| Функция | Bitbucket | GitHub |
|---|---|---|
| Бесплатные private | ✅ Да | ✅ Да |
| CI/CD | Pipelines | Actions |
| Wiki | ✅ Да | ✅ Да |
| Сообщество | Меньше | 100+ млн |
| Jira интеграция | ✅ Отлично | Есть, но хуже |
| Self-hosted | Bitbucket Server | GitHub Enterprise |
Частые проблемы
“Authentication failed”
Решение:
Для Bitbucket с 2FA нужен App Password:
- Bitbucket → Personal settings → App passwords
- Create app password
- Используйте вместо обычного пароля
Большой репозиторий (> 1GB)
Решение:
- Используйте
git filter-branchчтобы удалить большие файлы из истории - Или Git LFS для больших файлов
- Или BFG Repo-Cleaner
Different commit authors
Git сохраняет оригинальных авторов. Если нужно изменить:
git filter-branch --env-filter '
export GIT_AUTHOR_EMAIL="new@email.com"
export GIT_COMMITTER_EMAIL="new@email.com"
'
Обратная миграция
Передумали? Вернуться можно точно так же:
git clone --bare https://github.com/username/repo.git
cd repo.git
git push --mirror https://bitbucket.org/username/repo.git
Вывод
Миграция с Bitbucket на GitHub:
✅ Простая (3-5 минут на репозиторий)
✅ Сохраняет историю
✅ Можно автоматизировать
Выбирайте GitHub для:
- Открытых проектов
- Портфолио
- Сообщества
Оставайтесь на Bitbucket если:
- Интенсивно используете Jira
- Корпоративный setup уже настроен
- Bitbucket Pipelines работают идеально
Удачной миграции! 🚀
💬 Comments (0)
No comments yet
Be the first to share your opinion about this article!