Профессиональный рабочий процесс Git | Кодементор

Почему?

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

Git рабочий процесс

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

Мастер трека

Первое, что мы хотим сделать, это создать нашу функциональную ветку из master, потому что мы хотим начать с последних+рабочих изменений.

git checkout master

Сейчас мы на мастере.

Создать ветку функции

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

git checkout -b add-user-registration

Мы создали совершенно новую ветку под названием «Добавить-регистрацию-пользователя».

Добавьте свои изменения

Перейдите к добавлению/обновлению/удалению файлов в вашем приложении, просто в качестве примера:

touch registration.html

git add -A

Эта команда создаст пустой HTML-файл регистрации.

Зафиксируйте свои изменения

Здесь мы сохраняем наш прогресс, сейчас мы зафиксируем наши изменения.

git commit -m "Add user registration"

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

Что, если мне придется сделать перерыв?

Сейчас 17:00, и вы добавили новое изменение в приложение, скажем, вы создали новый HTML-файл, чтобы пользователи знали, как зарегистрироваться в приложении. НО вы не закончили с этим новым файлом, потому что вам не хватает некоторых деталей:

touch how-to-register.html

git add -A

Мы добавили новый файл, давайте зафиксируем и эти изменения.

git commit -m "WIP: how to register"

Обратите внимание, что мы добавили «WIP», что означает «В процессе», поэтому наша команда знает, что мы все еще работаем над этой функциональной веткой.

Нажмите ветку функции

git push origin add-user-registration

Это сделает ваши изменения видимыми на вашем пульте дистанционного управления.

Создать запрос на вытягивание

Поэтому посетите репозиторий Github и щелкните вкладку «Запросы на вытягивание», затем нажмите «Новый запрос на вытягивание», затем выберите один вариант в раскрывающемся списке слева (цель) и выберите один вариант в раскрывающемся списке справа (источник), затем нажмите «Создать запрос на вытягивание». запрос».

Примечание: Для целевого варианта старайтесь всегда выбирать ветку «разработать» (если она доступна). Ветка разработки предназначена для экспериментальных изменений, поэтому настоятельно рекомендуется использовать ее для новых функций, подобных той, над которой мы работаем в этом руководстве.

ПРИМЕЧАНИЕ: Я использую Github, но это очень похоже на другие платформы.

Получить все изменения

Итак, наступил следующий день, и мы продолжаем работать над той же функциональной веткой, помните?

Скажем, наша команда добавляла изменения в master, но в нашей функциональной ветке их нет, потому что мы спали.

Давайте обновим нашу ветку функций последними основными изменениями.

git fetch

Git fetch просто получит все изменения из удаленного репозитория (в данном случае Github), но никак не изменит нашу ветку.

Слить все изменения из master

Но git fetch недостаточно, чтобы объединить эти изменения в нашу ветку функций, поэтому давайте объединим изменения, которые мы только что получили.

git rebase -i origin/master

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

Перед git rebase:

    * - add-user-registration
* - * 
    * - master

После ребаза git:

* - * - * - master - * - add-user-registration

Примечание: -i опция откроет интерактивный сеанс, но давайте посмотрим, что в следующем разделе.

Выберите финальную фиксацию

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

Интерактивная сессия все еще открыта, и мы хотим объединить все коммиты в один. Вот как это должно выглядеть:

pick e414s79 Add user registration
s a767u81 WIP: how to register

...

Здесь вы также можете изменить сообщение фиксации, если хотите, так как мы добавили несколько изменений, возможно, имеет смысл подумать о лучшем сообщении фиксации.

Примечание: pick option будет указывать, что мы хотим выбрать этот коммит в качестве нашего последнего коммита, а s указывает, что мы хотим добавить изменения из коммита (a767u81) в выбранный коммит (e414s79).

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

Обновить удаленную ветку

Теперь, когда мы объединили изменения в нашей функциональной ветке, пришло время обновить удаленную ветку.

git push origin add-user-registration -f

Обратите внимание, что мы используем -f вариант, так как мы хотим принудительно нажать ветку. Причина этого в том, что мы изменили историю Git (используя rebase).

Запрос на проверку команды

Объединить пулл-реквест

На странице вашего запроса на вытягивание на Github, после того как ваша команда проверит его, вы можете нажать «Объединить запрос на вытягивание».

Удалить ветку функции

На странице запроса на вытягивание на Github после ее слияния вы можете удалить оттуда удаленную ветку, нажав «Удалить ветку». Хорошей практикой является удаление объединенных ветвей. Вам не нужно беспокоиться об этом, потому что эти изменения уже были объединены, и нет смысла их сохранять.

Вы также должны удалить свою ветку локально:

git branch -D add-user-registration

Последние мысли

Вот и все! Вы узнали, как профессиональные команды ежедневно управляют своим контролем версий с помощью Git.

У каждой компании свой подход, но в большинстве случаев он очень похож на этот.

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *