Некоторое время назад GitHub открыл возможность создавать приватные репозитории бесплатно 🥳. Это произвело настоящий фурор у разработчиков, ведь многие мечтали поработать над приватным кодом используя передовые функции и удобный интерфейс.
Рассмотрим некоторые особенности GitHub которые недоступны в Bitbucket:
-
Draft pull requests - позволяет создавать пул-реквесты черновики, которые работают как предварительные версии пул-реквестов и используются, когда разработчик хочет начать обсуждение изменений, которые он собирается внести в проект, но еще не готов к полному обзору и слиянию кода.
-
Explicit reviewer request changes - представляет собой запрос от автора пул-реквеста к одному или нескольким ревьюверам о выполнении изменений в коде перед его принятием. Когда автор считает, что изменения, которые он предложил, требуют доработки или коррекции согласно отзывам, он может использовать эту функцию, чтобы явно попросить других разработчиков произвести эти изменения.
-
Collapsing files and marking files as already viewed - позволяет управлять видимостью файлов внутри репозитория и помечать файлы как уже просмотренные.
В этой статье описан процесс переноса публичных и приватных репозиториев с Bitbucket на GitHub.
В качестве примера, я создал репозиторий в Bitbucket и сделал несколько коммитов:
Создайте новый репозиторий в GitHub, предпочтительно без файлов README.md
, license
и т.п., а также без Pull Request
и Issues
.
Примечания:
- Название нового репозитория может отличаться от названия репозитория в Bitbucket
- Процесс переноса приватного и публичного репозиториев не имеют отличий
- Bitbucket использует JIRA для
Issues
,
Скопируйте HTTPS (или SSH) ссылки на репозитории в Bitbucket и GitHub (репозиторий, который вы создали на предыдущем шаге).
Выполните следующие команды подменив ссылки на ваши репозитории:
git clone --mirror https://[email protected]/geekrainian-workspace/test.git
cd test.git
git remote set-url --push origin https://github.com/geekrainian/test.git
git push --mirror
Параметр --mirror в команде git push --mirror используется для полного зеркального копирования всех ссылок (веток, тегов и прочих ссылок) из локального репозитория в удаленный репозиторий. Это включает в себя не только код и коммиты, но и всю историю изменений и связанные ссылки.
Результат выполнения:
Enumerating objects: 18, done.
Counting objects: 100% (18/18), done.
Delta compression using up to 16 threads
Compressing objects: 100% (14/14), done.
Writing objects: 100% (18/18), 1.93 KiB | 660.00 KiB/s, done.
Total 18 (delta 5), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (5/5), done.
To https://github.com/geekrainian/test.git
* [new branch] master -> master
Имейте ввиду, что выполнение этих команд не обновляет удаленный репозиторий локально (источник или upstream), а только лишь зеркалирует и затем удаляет его с локальной машины после завершения. Поэтому вам потребуется клонировать новый репозиторий снова, прежде чем приступить к работе.
В случае успешного переноса, вы увидите полную историю изменений в GitHub:
Эта история оказалось полезной? 🤔
Поддержите меня чашечкой кофе и станьте спонсором нового контента!
Похожие публикации
Краткая инструкция о том, как расширить возможности Trello и добавить функциональность подобную JIRA... Читать далее
Способы создания gzip архивов на ОС Windows... Читать далее
Пошаговая инструкция по настройке вебхуков для отправки обновлений из GitHub в Discord... Читать далее