Публикация на тему
git, git rebase, git merge
Автор
Михалькевич Александр Викторович
Наименование Git
Автор А.В.Михалькевич
Специальность git, git rebase, git merge,
Анотация
Anotation in English
Ключевые слова
Количество символов 7785
Git — распределённая система управления версиями.
Скачать git можно по этой ссылке https://git-scm.com/downloads
Благодаря Git и системы ветвления у разработчиков имеется возможность работать в команде над одним проектом.
Обычно разработка начинается с клонирования репозитория, либо создания репозитория в папке с проектом. Далее, при необходимости, создаются ветки, в которых хранится разное состояние проекта, также часто используются команды git pull
- скачать изменения из удалённого git-репозитория и git push
- залить изменения в удалённый репозиторий.
cd domain // перешли в папку, где будем разварачивать проект git clone https://github.com/mikhalkevich/laravel_blogДалее открываем проект в своей любимой IDE и решаем поставленные задачи. После чего снова в консоли:
git add * git commit -m "first commit" git pushДругие часто используемые команды git:
Итак, мы склонировали проект, и начинаем работать над задачей.
По умолчанию исходный код находится в ветке 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)
, где в квадратных скопках - название, в круглых - ссылка на задачу.