Close

Обмен

В SVN разработчики обмениваются новыми поступлениями, размещая изменения из рабочей копии на своем локальном компьютере в центральный репозиторий. Затем другие разработчики извлекают эти обновления из центрального репозитория в свои локальные рабочие копии.

Git’s collaboration workflow is much different. Instead of differentiating between working copies and the central repository, Git gives each developer their own local copy of the entire repository. Changes are committed to this local repository instead of a central one. To share updates with other developers, you need to push these local changes to a public Git repository on a server. Then, the other developers can pull your new commits from the public repo into their own local repositories.

Миграция Git: централизованная разработка SVN в сравнении с распределенной разработкой Git

Предоставление каждому разработчику своего собственного полноценного репозитория является основой распределенного управления и открывает доступ к широкому выбору способов организации рабочего процесса. Подробная информация о таких рабочих процессах размещена в разделе "Рабочие процессы Git".

До сих пор вы работали только с локальным репозиторием Git. На этой странице объясняется, как перенести этот локальный репозиторий в общий репозиторий, размещенный в Bitbucket. Обмен репозиторием Git во время перехода позволяет команде экспериментировать с командами Git, не воздействуя при этом на текущую разработку в SVN. До тех пор, пока вы не будете готовы к полному переходу, очень важно, чтобы репозитории Git использовались «только для чтения». Все разработки необходимо по-прежнему размещать в первоначальном репозитории SVN.


Создание учетной записи Bitbucket


Если у вас еще нет учетной записи в Bitbucket, вам необходимо ее создать. Хостинг бесплатный до 5 пользователей, так что вы можете начинать экспериментировать с новым рабочим процессом Git прямо сейчас.

Создание репозитория Bitbucket


Далее вам понадобится создать репозиторий Bitbucket. Bitbucket позволяет легко управлять вашими репозиториями на хоcтинге через веб-интерфейс. Для этого вам достаточно нажать кнопку "Создать репозиторий" после входа в систему.

Create repository within Bitbucket

В появившейся форме введите имя и описание репозитория. Если ваш проект конфиденциальный, отметьте соответствующий уровень доступа, так чтобы клонировать могли только назначенные разработчики. В поле "Ответвление" задайте значение "Разрешить только приватное ответвление". Укажите Git в поле "Тип репозитория",выберите инструменты управления проектом, которые хотите использовать, а также основной язык программирования вашего проекта в поле "Язык" .

Create repository fields within Bitbucket
базы данных
Связанные материалы

Перемещение полного репозитория Git

Логотип Bitbucket
СМ. РЕШЕНИЕ

Изучите Git с помощью Bitbucket Cloud

Чтобы создать репозиторий на хостинге, отправьте форму, нажав кнопку "Создать репозиторий". После создания репозитория вы увидите страницу "Следующие шаги", на которой описаны стандартные команды для импорта существующего проекта. Далее на этой странице представлены пошаговые инструкции.

Создание удаленного доступа origin


Чтобы упростить процесс размещения изменений из вашего локального репозитория Git в только что созданный репозиторий Bitbucket, вам необходимо записать URL репозитория Bitbucket в удаленный доступ. Удаленный доступ — это удобный ярлык для URL. Технически в качестве ярлыка можно использовать все, что угодно, но если удаленный репозиторий служит в качестве официальной кодовой базы проекта, его обычно называют origin. Запустите следующую команду в локальном репозитории Git, чтобы добавить ваш новый репозиторий Bitbucket для дистанционного доступа origin .

git remote add origin https://<username>@bitbucket.org/<workspace-id>/<repo>.git

Обязательно измените на ваше имя пользователя в Bitbucket, на идентификатор рабочего пространства, а на имя репозитория в Bitbucket. Вы должны скопировать и вставить полный URL из веб-интерфейса Bitbucket.

Переход к GIt: добавление дистанционного доступа origin

После выполнения вышеуказанной команды вы можете использовать origin в других командах Git для ссылки на свой репозиторий в Bitbucket.

Перенос локального репозитория в Bitbucket


Далее вам необходимо наполнить свой репозиторий в Bitbucket содержимым из локального репозитория Git. Данная операция называется «выталкиванием», и ее можно выполнить следующими командами:

git push -u origin --all

Опция -u дает команду Git отслеживать вышестоящие ветви. Это позволяет Git сообщать вам, где находится история изменений в удаленном репозитории: впереди либо позади ваших локальных репозиториев. Опция --all переносит все локальные ветви в удаленный репозиторий.

You also need to push your local tags to the Bitbucket repository with the --tags option:

git push --tags
Переход к Git: размещение в репозитории Bitbucket

Теперь ваш репозиторий в Bitbucket фактически является клоном локального репозитория. В веб-интерфейсе Bitbucket вы можете просматривать всю историю изменений всех ветвей.

Обмен репозиторием с командой


Вам достаточно обменяться URL вашего репозитория в Bitbucket с любым другим разработчиком, которому необходим доступ к данному репозиторию URL любого репозитория Git можно скопировать и вставить на главной странице репозитория в Bitbucket:

Share repository url

Если ваш репозиторий конфиденциальный, доступ к нему для своей команды открывается на вкладке "Администрирование" в веб-интерфейсе Bitbucket. Для управления пользователями и группами следует нажать ссылку "Управление доступом" в меню слева.

Переход к Git: управление доступом к репозиториям Git

В качестве альтернативы можно использовать встроенную в Bitbucket функцию приглашения, чтобы приглашать других разработчиков для разветвления репозитория. Приглашенные пользователи автоматически получают доступ к репозиторию, и вам не нужно беспокоиться о предоставлении доступа.

После получения URL вашего репозитория другой разработчик может скопировать репозиторий на свою локальную машину с помощью git clone и начать работу над проектом. Например, после выполнения следующей команды на своей локальной машине у разработчика появится новый репозиторий Git, содержащий проект в каталоге <repo>.

git clone https://<username>@bitbucket.org/<workspace-id>/<repo>.git 

Продолжайте делать коммиты с помощью SVN, а не Git


Теперь у вас должна быть возможность отправить локальный проект в удаленный репозиторий, а у вашей команды — клонировать проект с помощью удаленного репозитория на локальные компьютеры. Это все инструменты, необходимые для начала совместной работы в Git. Тем не менее вам и вашей команде нужно продолжать делать коммиты с помощью SVN до тех пор, пока к переходу не подготовятся все участники.

Изменения в репозитории Git нужно проводить только через исходный репозиторий SVN с помощью процедуры синхронизации, описанной на предыдущей странице. По сути, это означает, что все ваши репозитории Git (локальные и удаленные) будут доступны только для чтения. С ними могут экспериментировать разработчики, и вы можете начать интегрировать их в процесс сборки, но внесения постоянных изменений с помощью Git следует избегать.

Миграция на Git: изменения в репозитории Git должны поступать только из исходного репозитория SVN

Резюме


На этом шаге вы настроили репозиторий Bitbucket, чтобы использовать преобразованный репозиторий Git вместе с другими разработчиками. Теперь у вас должны быть все инструменты для реализации любого из процессов, описанных в разделе Рабочие процессы Git. Выполнять синхронизацию с репозиторием SVN и обмениваться полученными коммитами Git через Bitbucket можно до тех пор, пока команда не освоится с Git. После этого миграцию можно завершить, удалив репозиторий SVN.


Поделитесь этой статьей
Следующая тема

Рекомендуемые статьи

Добавьте эти ресурсы в закладки, чтобы изучить типы команд DevOps или получать регулярные обновления по DevOps в Atlassian.

Люди сотрудничают друг с другом, используя стену со множеством инструментов

Блог Bitbucket

Рисунок: DevOps

Образовательные программы DevOps

Демонстрация функций в демо-зале с участием экспертов Atlassian

Как инструмент Bitbucket Cloud работает с Atlassian Open DevOps

Подпишитесь на информационную рассылку по DevOps

Thank you for signing up