Обмен
В 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".
До сих пор вы работали только с локальным репозиторием Git. На этой странице объясняется, как перенести этот локальный репозиторий в общий репозиторий, размещенный в Bitbucket. Обмен репозиторием Git во время перехода позволяет команде экспериментировать с командами Git, не воздействуя при этом на текущую разработку в SVN. До тех пор, пока вы не будете готовы к полному переходу, очень важно, чтобы репозитории Git использовались «только для чтения». Все разработки необходимо по-прежнему размещать в первоначальном репозитории SVN.
Создание учетной записи Bitbucket
Если у вас еще нет учетной записи в Bitbucket, вам необходимо ее создать. Хостинг бесплатный до 5 пользователей, так что вы можете начинать экспериментировать с новым рабочим процессом Git прямо сейчас.
Создание репозитория Bitbucket
Далее вам понадобится создать репозиторий Bitbucket. Bitbucket позволяет легко управлять вашими репозиториями на хоcтинге через веб-интерфейс. Для этого вам достаточно нажать кнопку "Создать репозиторий" после входа в систему.
В появившейся форме введите имя и описание репозитория. Если ваш проект конфиденциальный, отметьте соответствующий уровень доступа, так чтобы клонировать могли только назначенные разработчики. В поле "Ответвление" задайте значение "Разрешить только приватное ответвление". Укажите Git в поле "Тип репозитория",выберите инструменты управления проектом, которые хотите использовать, а также основной язык программирования вашего проекта в поле "Язык" .
Связанные материалы
Перемещение полного репозитория Git
СМ. РЕШЕНИЕ
Изучите 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
Обязательно измените
После выполнения вышеуказанной команды вы можете использовать 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
Теперь ваш репозиторий в Bitbucket фактически является клоном локального репозитория. В веб-интерфейсе Bitbucket вы можете просматривать всю историю изменений всех ветвей.
Обмен репозиторием с командой
Вам достаточно обменяться URL вашего репозитория в Bitbucket с любым другим разработчиком, которому необходим доступ к данному репозиторию URL любого репозитория Git можно скопировать и вставить на главной странице репозитория в Bitbucket:
Если ваш репозиторий конфиденциальный, доступ к нему для своей команды открывается на вкладке "Администрирование" в веб-интерфейсе Bitbucket. Для управления пользователями и группами следует нажать ссылку "Управление доступом" в меню слева.
В качестве альтернативы можно использовать встроенную в Bitbucket функцию приглашения, чтобы приглашать других разработчиков для разветвления репозитория. Приглашенные пользователи автоматически получают доступ к репозиторию, и вам не нужно беспокоиться о предоставлении доступа.
После получения URL вашего репозитория другой разработчик может скопировать репозиторий на свою локальную машину с помощью git clone
и начать работу над проектом. Например, после выполнения следующей команды на своей локальной машине у разработчика появится новый репозиторий Git, содержащий проект в каталоге <repo>
.
git clone https://<username>@bitbucket.org/<workspace-id>/<repo>.git
Продолжайте делать коммиты с помощью SVN, а не Git
Теперь у вас должна быть возможность отправить локальный проект в удаленный репозиторий, а у вашей команды — клонировать проект с помощью удаленного репозитория на локальные компьютеры. Это все инструменты, необходимые для начала совместной работы в Git. Тем не менее вам и вашей команде нужно продолжать делать коммиты с помощью SVN до тех пор, пока к переходу не подготовятся все участники.
Изменения в репозитории Git нужно проводить только через исходный репозиторий SVN с помощью процедуры синхронизации, описанной на предыдущей странице. По сути, это означает, что все ваши репозитории Git (локальные и удаленные) будут доступны только для чтения. С ними могут экспериментировать разработчики, и вы можете начать интегрировать их в процесс сборки, но внесения постоянных изменений с помощью Git следует избегать.
Резюме
На этом шаге вы настроили репозиторий Bitbucket, чтобы использовать преобразованный репозиторий Git вместе с другими разработчиками. Теперь у вас должны быть все инструменты для реализации любого из процессов, описанных в разделе Рабочие процессы Git. Выполнять синхронизацию с репозиторием SVN и обмениваться полученными коммитами Git через Bitbucket можно до тех пор, пока команда не освоится с Git. После этого миграцию можно завершить, удалив репозиторий SVN.
Поделитесь этой статьей
Следующая тема
Рекомендуемые статьи
Добавьте эти ресурсы в закладки, чтобы изучить типы команд DevOps или получать регулярные обновления по DevOps в Atlassian.