Обмен

Обмен

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

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

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

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

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

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

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

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

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

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

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

Переход к Git: создание репозитория Bitbucket

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

Создание удаленного доступа 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 переносит все локальные ветви в удаленный репозиторий.

Вам также необходимо разместить локальные тэги в репозитории Bitbucket, используя опцию --tags :

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

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

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

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

Переход к Git: обмен репозиторием

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

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

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

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

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.

Готовы изучить Git?

Ознакомьтесь с этим интерактивным обучающим руководством.

Начните прямо сейчас