Цель

Краткое описание основной задачи

До сих пор вы работали в репозиториях и над кодом в одиночку. А как быть, если вы хотите, чтобы кто-нибудь проверил ваш код и отправил отзыв? Вы сможете это сделать, добавив проверяющего к своему запросу pull, причем вне зависимости от того, находитесь ли вы с ним в одной комнате или в разных концах земного шара.

Время Аудитория Обязательные условия
15 минут Имеется опыт использования Bitbucket Cloud. В противном случае нужно ознакомиться с одним из наших обучающих руководств для новичков. Зарегистрируйтесь для работы с Bitbucket Cloud
Не указано Для тех, кто предпочитает использовать Bitbucket Cloud и Git с графическим интерфейсом Регистрация в Sourcetree

О ветках и запросах pull

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

Когда в ветке Bitbucket возникают изменения в коде, можно создать запрос pull и инициировать проверку кода. Перед подтверждением запроса участники команды выскажутся относительно кода и зададут вопросы. Получив достаточное количество подтверждений, вы сможете выполнить слияние запроса pull и объединить ветку с основным кодом.

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

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

  1. Нажмите + на общей боковой панели и выберите в разделе Create (Создать) пункт Repository (Репозиторий).

  2. Убедитесь, что созданная вами команда имеет статус владельца репозитория.

  3. Введите произвольные имя проекта и имя репозитория. Если вы затрудняетесь с выбором, используйте варианты «Стартовый набор» и «Первые впечатления» соответственно.

  4. В области Include a README? (Добавить файл README?) выберите один из вариантов Yes (Да).

  5. В области Version control system (Система управления версиями) выберите тип репозитория, который нужно создать. Если вы затрудняетесь с выбором, оставьте эту настройку без изменений.

  6. Нажмите Create repository (Создать репозиторий), и вы попадете на страницу Source (Исходный код) своего нового репозитория.

  7. На странице Source (Исходный код) выберите > Add file (Добавить файл).

  8. Присвойте файлу имя survey.html, затем скопируйте этот код и вставьте его в основную область текста.

\<\!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style media="screen" type="text/css">
body {
margin: auto;
width: 700px;
color: #FFFFFF;
font-family: Arial, sans-serif;
background-color: #172B4D;
}
body>h1 {
margin: 50px;
font-size: 50px;
text-align: center;
color: #0052CC;
}
</style>
</head>
<body>
<h1>Team up in space</h1>
<p>
Welcome to the team! You've made it this far so we know that you've got the potential to do great things. Because you're going to be collaborating with other awesome people, anything you add needs to be code reviewed and approved. That's just how a team works! You should have already created a branch and checked it out locally. If you haven't, go back to the tutorial and do that now. We'll be here.
</p>
<p>
Because you're on your own branch, you can go crazy. Spice up this file any way you like. Add more files to this repository if you see fit. If want to take it slow and are just here to learn about pull requests, you can use this opportunity to fill out our short questionaire.
</p>
<br>
<p>
<b>Question 1</b>: Have you used pull requests before?
</p>
<p>
<b>Answer 1</b>: **** Your answer here **** </p>
<p>
<b>Question 2</b>: Why do you want to learn about code review?
</p>
<p>
<b>Answer 2</b>: **** Your answer here **** </p>
<p>
<b>Question 3</b>: Who do you plan to work with on Bitbucket? </p>
<p>
<b>Answer 3</b>: **** Your answer here **** </p>
</body>
</html>
  1. Нажмите Commit (Сделать коммит), затем повторно нажмите Commit в диалоговом окне.

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

Клонирование и внесение изменений в новую ветку

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

Если вы используете командную строку

Шаг 1. Клонируйте репозиторий в локальную систему

Перейдем в локальную систему, чтобы приступить к работе.

  1. В репозитории нажмите кнопку Clone (Клонировать) в правом верхнем углу.
    Bitbucket отобразит диалоговое окно Clone this repository (Клонировать репозиторий). По умолчанию в диалоговом окне клонирования выбран протокол HTTPS или SSH, в зависимости от ваших настроек. Поэтому изменять протокол по умолчанию не требуется.
  2. Скопируйте команду клонирования.

  3. В окне терминала перейдите в локальный каталог, в который требуется клонировать репозиторий.

$ cd ~/<path_to_directory>
  1. Вставьте команду, скопированную из Bitbucket, например:
$ git clone https://breezy@bitbucket.org/powerstars/first-impressions.git

Cloning into 'first-impressions'...
Password for 'https://breezycloud@bitbucket.org': 
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 6 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (6/6), done.

Подробная информация о клонировании приведена в соответствующем видео:

Шаг 2. Создайте ветку и переместите ее в локальную среду

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

  1. Нажмите Branches (Ветки) на левой панели навигации. Вы увидите, что у вас уже есть главная ветка (master).

  2. Нажмите Create a branch (Создать ветку) в правом верхнем углу.

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

$ git fetch && git checkout my-updates

Password for 'https://breezycloud@bitbucket.org': 
From https://bitbucket.org/planetbreezycloud/first-impressions
 * [new branch]      my-updates -> origin/my-updates
Branch 'my-updates' set up to track remote branch 'my-updates' from 'origin'.
Switched to a new branch 'my-updates'

Вы переключились на локальную версию новой ветки. Теперь вы можете работать с изолированным участком кода и затем опубликовать его.

Шаг 3. Внесите изменения в ветку

На этом этапе вам необходимо внести в репозиторий несколько изменений. Как указано в файле, можно использовать самый нестандартный вариант организации данных или выбрать нечто попроще. Измените CSS. Добавьте новые файлы. Напишите космическую оперу. Или просто ответьте на вопросы.

  1. Откройте в текстовом редакторе файл survey.html (он может иметь другое имя).

  2. Внесите нужные изменения, затем сохраните и закройте файл.

  3. Если в окне терминала не выполнялось никаких действий, там будет отображаться каталог репозитория. Просмотрите состояние репозитория с помощью команды git status. Вы увидите измененный файл survey.html. Если вы добавили или изменили другие файлы, они также будут показаны.

$ git status
On branch my-updates
Your branch is up-to-date with 'origin/my-updates'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
        modified:   survey.html
no changes added to commit (use "git add" and/or "git commit -a")
  1. Внесите изменения локально с помощью команды git add <имя_файла>:
$ git add survey.html
  1. Выполните локальный коммит изменений с помощью команды git commit -m "ваше сообщение коммита":
$ git commit -m "Answered questions"
[my-updates 7506040] Answered questions
 1 file changed, 3 insertions(+), 3 deletions(-)
  1. Введите git push origin <имя_ветки>, чтобы отправить изменения в ветку Bitbucket, и введите пароль для завершения операции.
$ git push origin my-updates

Password for 'https://breezycloud@bitbucket.org': 

Counting objects: 3, done.

Delta compression using up to 8 threads.

Compressing objects: 100% (3/3), done.

Writing objects: 100% (3/3), 350 bytes | 350.00 KiB/s, done.

Total 3 (delta 1), reused 0 (delta 0)

To https://bitbucket.org/planetbreezycloud/first-impressions.git

   454ccaf..7506040  my-updates -> my-updates

Branch main set up to track remote branch main from origin.
  1. В Bitbucket перейдите на страницу Source (Исходный код) в своем репозитории. В раскрывающемся списке вы увидите две ветки. Коммиты, сделанные для ветки my-updates, также появятся в этой ветке.

Если вы используете Sourcetree

Шаг 1. Клонируйте репозиторий в локальную систему

Перейдем в локальную систему, чтобы приступить к работе.

  1. В репозитории нажмите + на общей боковой панели и выберите в разделе Get to work (Приступаем к работе) пункт Clone this repository (Клонировать репозиторий).
  2. Нажмите кнопку Clone in Sourcetree (Клонировать в Sourcetree).
  3. В диалоговом окне Clone New (Клонировать новый элемент) измените значение Destination Path (Путь назначения) на <путь_до_каталога_репозитория>/first-impressions/.
  4. Нажмите кнопку Clone (Клонировать).

Чтобы ознакомиться с процедурой, просмотрите раздел видео о клонировании репозитория:

Шаг 2. Создайте ветку и переместите ее в локальную среду

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

  1. Нажмите Branches (Ветки) на левой панели навигации. Вы увидите, что у вас уже есть главная ветка (master).

  2. Нажмите Create a branch (Создать ветку) в правом верхнем углу.

  3. Введите имя ветки и нажмите Create (Создать). Если вы затрудняетесь с выбором имени, используйте, например, my-updates.

  4. После создания ветки ее необходимо выбрать в локальной системе. Для этого нажмите кнопку Check out in Sourcetree (Переключить в Sourcetree).

  5. В диалоговом окне Checkout Existing (Переключение существующего элемента) в Sourcetree нажмите Checkout (Переключить).

Теперь ветка существует в Bitbucket и выбрана в локальной системе. Вы можете работать с изолированным участком кода и затем опубликовать его.

Шаг 3. Внесите изменения в ветку

На этом этапе необходимо внести в репозиторий несколько изменений. Как указано в файле, вы можете использовать самый нестандартный вариант организации данных или выбрать нечто попроще. Измените CSS. Добавьте новые файлы. Напишите космическую оперу. Или просто ответьте на вопросы.

  1. В репозитории Sourcetree нажмите кнопку Show in Finder (Показать в Finder).
  2. Откройте в текстовом редакторе файл survey.html (он может иметь другое имя).

  3. Внесите нужные изменения, затем сохраните и закройте файл.

  4. Откройте Sourcetree. Вы увидите, что в репозитории появились неподтвержденные изменения.

  5. (Только для Git.) Добавьте файл в раздел проиндексированных файлов:

    1. Выберите строку с неподтвержденными изменениями.

    2. В списке Unstaged files (Неиндексированные файлы) поставьте галочку рядом с файлом survey.html (сделайте то же самое для других файлов, содержащих неподтвержденные изменения).

    3. В диалоговом окне Confirm Stage? (Подтвердить индексирование?) нажмите OK.

  6. Нажмите кнопку Commit (Сделать коммит) в верхней части страницы, чтобы выполнить коммит файла.

  7. Введите комментарий к коммиту в соответствующей области, например «Отвечено».

  8. Нажмите кнопку Commit (Сделать коммит) под областью комментария.После переключения в прежнее представление вы заметите, что файл добавлен в коммит, но не опубликован в репозитории Bitbucket.

  9. Нажмите кнопку Push (Отправить) в Sourcetree, чтобы отправить изменения, выполненные в последнем коммите.

  10. В открывшемся диалоговом окне нажмите OK, чтобы опубликовать ветку с коммитом в Bitbucket.

  11. В Bitbucket перейдите на страницу Source (Исходный код) в своем репозитории. В раскрывающемся списке вы увидите две ветки. Коммиты, сделанные для ветки my-updates, также появятся в этой ветке.

Создание запроса pull для слияния изменений

Далее потребуется создать запрос pull, чтобы добавить проверяющих для проверки и утверждения вашего кода перед слиянием. Запрос pull не только инициирует проверку кода, но также позволяет просмотреть изменения по сравнению с исходным репозиторием. Кроме того, с помощью такого запроса можно без труда выполнить слияние готового кода.

Шаг 1. Создайте запрос pull

Для создания запроса pull необходима ветка — вы уже создали ее ранее.

  1. В репозитории нажмите + на общей боковой панели. Затем нажмите Create a pull request (Создать запрос pull) в разделе Get to work (Приступаем к работе).В Bitbucket появится форма запроса.
  2. Заполните форму:
    1. В поле Title (Название) автоматически отобразится ваш последний комментарий к коммиту.

    2. При необходимости добавьте информацию в поле Description (Описание).

      (Необязательное действие: добавление проверяющего). Если вы хотите, чтобы кто-нибудь из коллег проверил и (или) утвердил ваш код перед слиянием, добавьте его в поле Reviewers (Проверяющие). Как видите, в следующем примере запроса pull в качестве проверяющего добавлен пользователь Breezy Cloud.

      Чтобы добавить проверяющего к запросу pull, вы должны сначала предоставить ему доступ к репозиторию, добавив в группу. Более полная информация и подробные инструкции приводятся в статье Предоставление доступа к репозиторию пользователям и группам. Примечание: вы всегда можете сначала создать запрос pull, а проверяющих добавить позже.

    В результате форма будет выглядеть примерно так:
  3. Нажмите Create pull request (Создать запрос pull).

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

Шаг 2. Выполните слияние запроса pull

Подождите! Возможно, вы заметили кнопку Merge (Слияние) в верхней части страницы. Перед тем как ее нажать, необходимо дождаться утверждения изменений. Ваши коллеги получат уведомление по электронной почте, а также увидят запрос pull в разделе Pull requests to review (Запросы pull, ожидающие проверки) дашбоарда Your work (Ваша работа).

Перед нажатием кнопки Approve (Утвердить) проверяющий может просмотреть в запросе pull все изменения и добавить комментарии, таким образом начав обсуждение.

Когда коллега утвердит ваш запрос pull, вы получите уведомление по электронной почте. После получения всех необходимых утверждений (в данном случае нужно лишь одно) можно выполнить слияние. В разделе запроса pull нажмите Merge (Слияние). Готово! Чтобы увидеть, как выглядит ваша ветка после слияния с основной веткой, нажмите Commits (Коммиты). Это действие откроет дерево коммитов.