Создайте отличный запрос за 5 шагов [A How To Guide]

фото Янси Мин

на Unsplash

Прежде всего, поздравляю! Вы зашли так далеко. Создание запросов на извлечение — это последний шаг, который предлагает ваш код владельцам кода, а также другим участникам. Очень важно иметь отличный запрос, так как это поможет рецензентам лучше понять и изучить ваш поставленный код. Эта статья покажет вам, как сделать Pull Requests снова великолепными всего за 5 шагов.

1. Филиал

Ветвление означает, что вы отклоняетесь от основной линии разработки и продолжаете выполнять работу, не вмешиваясь в эту основную линию. Способ ветвления в Git невероятно легок, делая операции ветвления практически мгновенными, и переключаясь между ветвлениями назад и вперед, как правило, также быстро. —Git документ,

Новая ветвь должна быть создана из последнего кода его ветки назначения из восходящего потока. Это означает, что в точке ветвления ГОЛОВА коммит должен совпадать с ГОЛОВА совершить. Это поможет очистить историю коммитов в предстоящем пиаре. Чтобы сделать это, если вы используете команду Git, вы можете выполнить следующие шаги:

git fetch --all #1
git checkout upstream/dev #2
git checkout -b Feature/New #3
# 1, чтобы получить весь последний код из ваших удаленных репозиториев.
# 2, чтобы проверить последний код ветки разработки в апстриме.
# 3 для создания новой ветки с именем Feature / New из новейшего кода ветки разработки.
Вы также можете использовать SourceTree и примените аналогичные шаги выше, чтобы достичь того же самого.

О наименовании, вы в основном видите master, release или development как общее имя для ветки. Однако, для веток рефакторинга, веток новых функций или веток с исправлениями, что вы назовете?

Я хотел бы предложить 2 способа, которые вы можете выбрать по своему вкусу.

● Номер билета или номер выпуска на основе имен

Допустим, вы работаете над билетом Jira VAJ-96, чтобы исправить ошибку на главном экране. Тогда вы можете просто назвать новую ветку как

VAJ-96/Fix_Bug_In_Home_Screen

Поскольку для одного билета может потребоваться несколько веток, это соглашение о присвоении имен также может быть применено. Как это

VAJ-96/Fix_Bug_1_In_Home_Screen
VAJ-96/Fix_Bug_2_In_Home_Screen
VAJ-96/Fix_Bug_3_In_Home_Screen

● имена на основе типа филиала

В цикле разработки есть как минимум 3 типа веток, включая Feature, Fix и Refactor, над которыми вы будете работать. Мы можем классифицировать наши филиалы на основе этого так же, как эти

Feature/Pet_Dating
Feature/Music_For_Pet

#or
Fix/Loading_Issue
Fix/Crash_In_Home_Screen

#or
Refactor/Duplicated_Code
Refactor/Module_A

Одно из преимуществ, которые вы четко увидите, если вы используете терминал, это использование функции автозаполнения. Если вы используете SourceTree, это выглядит так

Мы можем легко классифицировать отрасль в соответствии с соглашением.

2. Фиксация

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

● Содержимое коммитов

Коммит должен содержать только то, что ему нужно. Лучше совершать, когда вы делаете что-то регулярно. Это поможет вам в случае, если вам нужно отменить некоторые коммиты или выбрать любой коммит для других веток.

Не ждите, пока все не будет сделано для фиксации, ни для фиксации каждой строки кода, которую вы пишете. Для чести быть инженером, делай это правильно!

● имя коммита

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

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

Fix: - Fixed the crash on Home Screen.
Feature: - Implemented playground game view.
Merge: - Merged latest develop to the feature branch.
Chore: - Increased the build number on Production configuration.
Refactor: - Replaced Singleton pattern by Dependencies Injection.

Давайте сделаем сообщение коротким, но четким. Это может спасти вашу жизнь один день!

И последнее, но не менее важное, запрос на извлечение не будет хорошим, если код внутри не является ни чистым, ни правильным. Поэтому очень важно убедиться, что написанный вами код является чистым, хорошо структурированным, оптимальным и соответствует соглашениям вашей организации. Здесь я рекомендую выступить в роли рецензента и самостоятельно проверить изменения перед созданием запроса на получение на шаге 3. Если есть что-то, что, по вашему мнению, может быть лучше, сделайте это лучше! Это делается для того, чтобы убедиться, что код, который вы запрашиваете у других, находится в ваших лучших проявлениях. Следовательно, это поможет спасти вас и других рецензентов много времени спустя.

3. Предложить

Отличный запрос на извлечение должен иметь четкое имя с подробными описаниями и дополнительными тегами или метками.

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

● вытащить имя запроса

Имя pull-запроса должно в целом сообщать об изменениях, чтобы дать общее представление о том, что такое pull-запрос. Ну, он может просто следовать стандарту именования коммитов, который мы видели выше.

● тянуть описания запроса

Описание помогает рецензентам лучше понять мотивы кода, достижения и пояснения участника.

ПОЧЕМУ— Над какими билетами / проблемами / предложениями вы работаете?
ЧТО— Что вы наделали?
КАК— Что должны знать рецензенты?

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

### Jira ticket: (or Issue number, or Proposal number)
Please pass the requirement information link which are related to this PR here

### What has changed:
1. Please list down what you have done here
2. Please list down what you have done here
3. Please list down what you have done here

### What reviewers should know:
Please highlight what reviewers should know when reviewing this PR
For example, your new proposal algorithm, your new proposal architecture
Or, show the gif to demo of how the screen you implemented works

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

● теги, ярлыки

Иногда вы хотите добавить дополнительную информацию для запроса извлечения, чтобы у нас был лучший фильтр и обзор. Это необязательный шаг.

Пример одного из моих великолепных запросов на тягу. Рассмотрение

Большой запрос на получение ответа должен иметь отзывчивые взаимодействия между рецензентами и участниками.

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

Конфликты могут возникнуть на этом этапе, так как у людей могут быть разные подходы.

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

С другой стороны, если вы рецензент, мой совет — сосредоточиться на коде, а не на человеке. Делайте это профессионально и часто, это действительно поможет вам так же, как и другим.

Не тратьте ли вы слишком много времени на дебаты или даже делайте это лично. В конце концов, мы одна команда, которая пытается внести свой вклад, чтобы сделать мир лучше, а не бороться, верно?

5. Утвердить, объединить

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

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

Объединенное ?! Теперь вы и ваша модель ветвления должны решить, удалить ли исходную ветку или оставить ее для будущих ссылок. Во всяком случае, сидеть сложа руки и расслабиться.

Поздравляем с выполнением вашей задачи. Сделайте перерыв и доберитесь до нового задания!

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



Источник: Создайте отличный запрос за 5 шагов [A How To Guide]


Похожие материалы по теме: Создайте отличный запрос за 5 шагов [A How To Guide]

Leave a comment