Изучите ветвление с помощью Bitbucket Cloud
Цель
Это обучающее руководство научит вас основным приемам создания, просмотра и объединения веток, а также работы в них с помощью Git и Bitbucket Cloud.
Время | Аудитория | Обязательные условия |
---|---|---|
35 минут | Требуется понимать основы рабочего процесса Git | У вас установлен Git |
У вас есть аккаунт Bitbucket |
Это учебное руководство подходит для тех, кто уже знаком с основами рабочего процесса Git, в том числе со следующими понятиями.
- Клонирование: копирование удаленного репозитория из Bitbucket Cloud в локальную систему.
- Добавление или индексирование: принятие внесенных изменений и их подготовка к добавлению в историю Git.
- Коммит:: добавление новых или измененных файлов в историю Git для репозитория.
- Pull (извлечение): добавление в локальный репозиторий новых изменений, внесенных в репозиторий другими разработчиками.
- Push: отправка изменений из локальной системы в удаленный репозиторий
Если вы не знаете основ Git, ознакомьтесь с обучающим руководством Изучение Git с помощью Bitbucket Cloud, и вы быстро войдете в курс дела.
Настройка
Чтобы у вас было ощущение командной работы в общем репозитории Bitbucket, мы предоставляем вам форк нашего общедоступного репозитория.
- Перейдите по ссылке tutorials/tutorials.git.bitbucket.org
- Нажмите + > Fork this repository (Сделать форк этого репозитория) в левой части экрана.
- Измените Name(Имя) на уникальное для вашей команды имя репозитория и нажмите Fork repository (Сделать форк репозитория).
- Создайте для репозитория каталог, в который можно будет легко перейти. У вас должно получиться что-то подобное:
$ mkdir test-repositories $ cd test-repositories/ $ test-repositories
- Клонируйте репозиторий, созданный с помощью форка, в созданный каталог. Это должно выглядеть примерно так:
$ git clone https://dstevenstest@bitbucket.org/dstevenstest/mygittutorial.bitbucket.io.git Cloning into 'mygittutorial.bitbucket.io'... remote: Counting objects: 12392, done. remote: Compressing objects: 100% (12030/12030), done. remote: Total 12392 (delta 8044), reused 564 (delta 360) Receiving objects: 100% (12392/12392), 2.72 MiB | 701.00 KiB/s, done. Resolving deltas: 100% (8044/8044), done. $ cd mygittutorial.bitbucket.io/
Создание ветки и внесение изменений с помощью процесса ветвления
В рамках этой ветки вы добавите цитату на свой веб-сайт.
- Создайте ветку с помощью команды git branch.
$ git branch test-1
- Переключитесь на только что созданную ветку с помощью команды git checkout.
$ git checkout test-1 Switched to branch 'test-1'
- Просмотрите список локальных веток с помощью команды git branch.
$ git branch main * test-1
- Обновите файл editme.html, добавив в него цитату. Вы можете написать что-то подобное:
Это цитата, и она мне нравится.
Цитата: искусство цитирования - Добавьте изменение.
git add editme.html
- Выполните коммит изменения и добавьте к нему описательный комментарий.
git commit editme.html -m'added a new quote' [test-1 063b772] added a new quote 1 file changed, 3 insertions(+), 3 deletions(-)
- Отправьте это изменение в Bitbucket с помощью команды git push.
git push fatal: The current branch test-1 has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin test-1
- Отправьте ветку и изменение с помощью команды git push.
$ git push origin test-1 Counting objects: 3, done. Delta compression using up to 8 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 363 bytes | 0 bytes/s, done. Total 3 (delta 2), reused 0 (delta 0) remote: remote: Create pull request for test-1: remote: https://bitbucket.org/dstevenstest/dans.git.bitbucket.org/pull-requests/new?source=test-1&t=1 remote: To https://bitbucket.org/dstevenstest/dans.git.bitbucket.org.git * [new branch] test-1 -> test-1
- Откройте учебный репозиторий и нажмите Branches (Ветки). Вы должны увидеть обе ветки: ветку main и ветку test-1. Это будет выглядеть примерно так:

Создание и извлечение удаленной ветки, переключение на удаленную ветку
При работе в команде вам, скорее всего, придется извлекать ветки, созданные другими участниками команды, с помощью команд pull или fetch, а также помещать ветки в Bitbucket командой push. В этом примере рассматриваются некоторые основы создания веток и работы с ветками, созданными другими участниками.
- ВеткиПерейдите в учебный репозиторий в Bitbucket и нажмите Branches (Ветки). Вы должны увидеть что-то подобное:
- Нажмите Create branch (Создать ветку), дайте этой ветке имя test-2 и нажмите Create (Создать).
- Скопируйте команду git fetch в диалоговое окно переключения веток. Это должно выглядеть примерно так:
$ git fetch && git checkout test-2 From https://bitbucket.org/dstevenstest/dans.git.bitbucket.org * [new branch] test-2 -> origin/test-2 Branch test-2 set up to track remote branch test-2 from origin. Switched to a new branch 'test-2'
- Введите в окне терминала команду git branch. Должен появиться примерно такой список веток:
$ git branch main test-1 * test-2
- Введите команду git status. Вы увидите что-то подобное:
$ git status On branch test-2 Your branch is up-to-date with 'origin/test-2'. nothing to commit, working tree clean
- Для переключения на другую ветку используйте команду git checkout. Эта команда будет выглядеть примерно так:
$ git checkout test-1 Switched to branch 'test-1' Your branch is ahead of 'origin/test-1' by 3 commits. (use "git push" to publish your local commits)
Отправка изменений и создание запроса pull
Настало время отправить на проверку первые изменения и выполнить слияние ветки.
- Нажмите +> Create a pull request (Создать запрос pull). Вы увидите, что ветка test-1 указана как источник, а ветка main — как целевая ветка.
- Нажмите Create pull request (Создать запрос pull).
- Добавьте в запрос pull комментарий, выбрав строку в области Diff (Сравнение) (область, в которой отображается изменение, внесенное вами в файл editme.html).
- Нажмите Approve (Подтвердить) в верхнем левом углу страницы. Безусловно, в реальном запросе pull у вас будут комментарии от проверяющих.
- Нажмите Merge (Выполнить слияние).
- (Необязательно) Добавьте Commit message (Комментарий к коммиту) с дополнительными сведениями.
- Выберите для операции слияния коммитов одну из двух возможных стратегий:
- Merge commit (Коммит слияния): сохраняет все коммиты из исходной ветки и делает их частью ветки назначения. Этот вариант аналогичен выполнению команды git merge --no-ff в командной строке.
- Squash (Склеивание): во время слияния исходной ветки в ветку назначения коммиты будут склеены. Этот вариант аналогичен выполнению команды git merge --squash в командной строке.
- Нажмите Commits (Коммиты) — и вы увидите, как ваша ветка встраивается в общую схему изменений.
Удаление ветки и получение данных с помощью команды pull из главной ветки (main) в локальную рабочую ветку
Итак, вы прошли через основной рабочий процесс ветвления, и изменения теперь находятся в главной ветке. Напоследок рассмотрим, как удалить ветку, для которой только что выполнено слияние, выполнить запрос pull к главной ветке, а затем объединить обновленную главную ветку с веткой test-2.
- Откройте терминал и выполните команду git status. Результат должен выглядеть примерно так:
$ git status On branch test-1 nothing to commit, working tree clean
- Переключитесь на главную ветку командой git checkout main. Результат должен выглядеть примерно так:
git checkout main Switched to branch 'main' Your branch is up-to-date with 'origin/main'.
- Выполните команду git pull. Результат должен выглядеть примерно так:
$ git pull remote: Counting objects: 1, done. remote: Total 1 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (1/1), done. From https://bitbucket.org/dstevenstest/dans.git.bitbucket.org 2d4c0ab..dd424cb main -> origin/main Updating 2d4c0ab..dd424cb Fast-forward editme.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
- Выполните команду git branch -d {имя_ветки}, чтобы удалить ветку test-1. Результат будет выглядеть примерно так:
$ git branch -d test-1 Deleted branch test-1 (was 063b772)
- Переключитесь на ветку test-2 с помощью команды git checkout.
$ git checkout test-2 Switched to branch 'test-2' Your branch is up-to-date with 'origin/test-2'.
- Слейте главную ветку в свою рабочую ветку с помощью команды git merge main test-2. Результат будет выглядеть примерно так:
$ git merge main test-2 Updating 2d4c0ab..dd424cb Fast-forward editme.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
- Очень важно, какая ветка активна. Если вы хотите слить ветку main в ветку test-2, вам необходимо переключиться на ветку test-2 (сделать ее активной). То же самое верно, если вы хотите слить ветку test-2 в ветку main: вы должны переключиться на ветку main.
- Для того чтобы узнать, какая ветка активна в данный момент, используйте команду git branch (активная ветка будет отмечена звездочкой) или git status (с ее помощью можно узнать, на какой ветке вы находитесь и есть ли в ней ожидающие локальные изменения).
Надеемся, что вы немного разобрались с ветвлением и используемыми командами. Давайте подведем итого того, что мы только что узнали.
Знакомство с процессом ветвления
Рабочий процесс с функциональными ветками Git является эффективным способом командной работы в Bitbucket. В этом рабочем процессе разработка функциональных возможностей выполняется в ветках, которые отделены от главной ветки (main). Это позволяет множеству разработчиков работать над своими задачами, не затрагивая основной код.
![]() | Начните с главной веткиЭтот рабочий процесс позволяет совместно работать над кодом как минимум с еще одним человеком. Если репозиторий Bitbucket и локальный репозиторий находятся в актуальном состоянии, можно приступать к работе. |
Создайте новую веткуИспользуйте отдельную ветку для каждой функции или задачи, над которой вы работаете. После создания ветки переключитесь на нее локально, чтобы все внесенные изменения сохранялись в ней. | |
Обновление, добавление, коммит и отправка измененийРаботайте над этой функцией и делайте необходимые коммиты, как обычно при использовании Git. Завершив работу, отправьте коммиты, чтобы обновить функциональную ветку в Bitbucket. | |
Отправьте код на проверкуЧтобы получить отзыв на свой код, создайте в Bitbucket запрос pull. Затем можно добавить проверяющих и убедиться, что все работает правильно, прежде чем выполнять слияние. | |
Исправление функции по отзывамНа этом этапе коллеги комментируют и утверждают отправленные коммиты. Исправьте функцию по их отзывам локально, а затем сделайте коммит и отправьте изменения в Bitbucket. Обновления отобразятся в запросе pull. | |
Выполните слияние своей веткиЕсли другие пользователи вносили изменения в репозиторий, перед слиянием может потребоваться разрешение конфликтов слияния. Если ваш запрос pull утвержден и не содержит конфликтов, вы можете добавить код в главную ветку. Выполните слияние из запроса pull в Bitbucket. |
В этом учебном руководстве рассматривается ограниченный круг примеров того, каким образом использование веток повышает эффективность работы в команде. Существует несколько подходов к ветвлению, и мы рассмотрим некоторые из них в разделе Сравнение процессов.