Публикация на тему

Git


git, git rebase, git merge



Автор

Михалькевич Александр Викторович


Публикация

Наименование Git

Автор А.В.Михалькевич

Специальность git, git rebase, git merge,

Анотация

Anotation in English

Ключевые слова

Количество символов 7785

Содержание

Введение

1 Основы GIT

Git — распределённая система управления версиями.

Скачать git можно по этой ссылке https://git-scm.com/downloads

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

Обычно разработка начинается с клонирования репозитория, либо создания репозитория в папке с проектом. Далее, при необходимости, создаются ветки, в которых хранится разное состояние проекта, также часто используются команды git pull - скачать изменения из удалённого git-репозитория и git push - залить изменения в удалённый репозиторий.

Предположим, у нас имеется git-репозиторий с проектом, который необходимо развернуть локально - https://github.com/mikhalkevich/laravel_blog
cd domain // перешли в папку, где будем разварачивать проект
git clone https://github.com/mikhalkevich/laravel_blog
Далее открываем проект в своей любимой IDE и решаем поставленные задачи. После чего снова в консоли:
git add *
git commit -m "first commit"
git push
Другие часто используемые команды git:

2 Merge request на практике

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

По умолчанию исходный код находится в ветке master. Поэтому прежде чем приступать к задаче, необходимо создать ветку под текущую задачу. Название ветки имеет значение:
- префикс feet/ означает feature, он всегда должен присутствовать в начале названия;
- номер задачи, который идёт сразу после префикса и
- через знак "_" нижнее подчёркивание описываем одним/двумя словами на английском языке суть задачи.

Пример:

git branch feet/4546_form
git checkout feet/4546_form

Теперь можно приступать к задаче. Вносим необходимые изменения в проект. Например, в файл test.php добавили код

phpinfo();
Примечание. Если приступили к задаче и забыли переключиться на нужную ветку - не проблемма. Это можно сделать и на текущем этапе. Главное следить за тем, чтобы локально была установлена текущая версия проекта (почаще делаем git pull из ветки master), иначе могут возникнуть конфликты с merge (cлиянии веток). Если в удалённом репозитории настроен merge request, то попытка залить в master ни к чему не приведёт.

Далее необходимо залить текущую ветку с изменениями на удалённый репозиторий. Команды:

git add *
git commit -m "chore: test php"
Примечание. Если задача ещё выполнена, то в начале комита необходимо прописать chore, если задача выполнена - то, в message пишем что угодно: что делали, то и пишем (желательно использовать английские буквы).

Теперь необходимо изменения из ветки задачи залить в master - тогда мы сможем протестить задачу на удалённом сервере. Для этого необходимо авторизоваться в gitlab и перейти на страницу с ветками проекта.

Repository -> branches

Если всё правильно сделали, то увидим следующее:

Далее необходимо сделать Merge request. Нажимаем на кнопку Merge request своей ветки и переходим на соответстующую страрицу.

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

Если всё правильно сделали, увидим следующее:

Меняем Title на следующий:

[12877] Form adding

Находясь на этой же странице, чуть ниже, выбираем Assigne (текущий пользователь, т.е. тот, кто делает задачу), Reviewer (тот, кто будет проверять задачу) и нажимаем Merge request

Merge request создан. Но если задача не доделана, помечаем её как черновик Mark as draft

Merge request в состоянии draft позволяет отредактировать Title и Description и проверить какие изменения были внесены в код.

Если задача выполнена - переводим Merge request в состояние Mark as ready. После чего возвращаемся в локальный репозиторий и создаём ещё один комит, но уже с другим названием: feet: [4546](href_link_to_task), где в квадратных скопках - название, в круглых - ссылка на задачу.

Заключение

Список использованных источников

Приложения