Skip to content

Instantly share code, notes, and snippets.

@avshatalov48
Forked from ilyar/my-git-flow.md
Created October 4, 2018 12:18
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save avshatalov48/358596e9d9c6389c53b1780a1546b081 to your computer and use it in GitHub Desktop.
Save avshatalov48/358596e9d9c6389c53b1780a1546b081 to your computer and use it in GitHub Desktop.
Git Рабочий процесс

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

Внимание!

Для выполнения каких-либо команд по проекту, надо находиться в консоли в каталоге проекта. Переход в каталог проекта осуществляется командой: cd projectname, где projectname - это название проекта

Это инструкция для выполнения задачи в проекте.

1 Переключиться на ветку мастер и актуализировать ее. Клонировать проект и устанавливать утилиты снова не нужно!

git checkout master
git pull

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

И тут может произойти кое-что интересное. Допустим до этого решали issue#0, закомитили, сформировали запрос на слияние, но Ваш проджект менеджер еще не утвердил Ваш запрос, т.е. Ваши изменения в коде в ветку master не ушли. Тогда после выполнения указанных выше комманд Вы обнаружите, что в каталоге проекта "исчез" весь Ваш код. На самом деле он никуда не исчез, но Вы синхронизировались с мастером, а в мастер он еще не дошел.

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


2 Создаем ветку issue0 для решения поставленной задачи:

git checkout -b issue0

или

git fetch
git checkout -b issue0 origin/master

где (здесь и далее) цифра 0 должна быть заменена на цифру, соответствующую номеру задачи, которую Вы решаете.


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


4 Коммитим изменения:

git commit -am "#0 комментарий"

Коммит фиксирует изменение кода локально.


5 Чтобы отправить ветку в репозиторий GitLab - выполнить в консоли:

git push origin issue0

6 Создаем Запрос слияния - Merge Request ветки (branch) issue0 с веткой master.

Merge Request назначаем (assigned to) на того кто ставил Вам задачу.

❗ Перед создание запроса необходимо сосквошить коммины.

Важный момент! Одна задача - одна ветка. Одна ветка - один Merge Request. Вы помните, что создали ветку (пункт 3), потом внесли изменения и сделали коммит и пуш. Потом вы создали Merge Request. И, допуситм, спохватились, что что-то недокодили. В этом случае второй раз Merge Request делать не нужно. Нужно вернуться к пункту 3, внести изменения в проект, сделать сборку, закомитить и запушить, после пуша (git push origin issue0), запрос слияния обновится без дополнительных усилий с Вашей стороны.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment