22. Создание ветки
Разработка новой функциональности всегда связана с риском: разработка может занять много времени, вы можете в конечном итоге отказаться от неё и т. д. По этой причине лучше всего изолировать разработку фичи в отдельной ветке. Когда фича будет готова, вы сможете слить эту ветку с веткой main . До того времени ветка main будет защищена от рискованного и непроверенного кода. Кроме того, вы можете работать над несколькими фичами параллельно, над каждой в собственной ветке. Вы также можете в любой момент вносить изменения в ветке main , например, чтобы исправить ошибку в стабильном коде.
01 Создайте ветку
Пришло время сделать нашу страницу более стильной с помощью CSS. Мы будем развивать эту возможность в новой ветке под названием style .
Выполните
git switch -c style git status
Старожилы могут возразить, что их учили создавать ветки командой git checkout -b style . Помните, я упоминал, что команда checkout перегружена функциями и флагами? Старый способ все еще работает, но он не рекомендуется. Новая команда git switch более выразительна и менее восприимчива к ошибкам. Кроме того, в ней меньше флагов и опций, поэтому ее легче запомнить.
Результат
$ git switch -c style Switched to a new branch 'style' $ git status On branch style nothing to commit, working tree clean
Обратите внимание, что команда git status сообщает о том, что вы находитесь в ветке style .
02 Добавьте файл стилей style.css
Выполните
touch style.css
Файл: style.css
h1 color: red; >
Выполните
git add style.css git commit -m "Added css stylesheet"
03 Измените основную страницу
Обновите файл hello.html , чтобы использовать стили style.css .
Файл: hello.html
html> head> link type="text/css" rel="stylesheet" media="all" href="style.css" /> head> body> h1>Hello, World!h1> body> html>
Выполните
git add hello.html git commit -m "Included stylesheet into hello.html"
04 Измените hello.html , чтобы он использовал style.css .
Файл: hello.html
html> head> link type="text/css" rel="stylesheet" media="all" href="style.css" /> head> body> h1>Hello, World!h1> body> html>
Выполните
git add hello.html git commit -m "Included stylesheet into hello.html"
05 Далее
Теперь у нас есть новая ветка под названием style с двумя новыми коммитами. Далее мы узнаем, как переключаться между ветками.
GitLab – Создать ветку
Филиал является самостоятельной линией и частью процесса разработки. Создание филиала включает в себя следующие шаги.
Создание ветки
Шаг 1 – Войдите в свою учетную запись GitLab и перейдите к своему проекту в разделе « Проекты ».

Шаг 2 – Чтобы создать ветку, нажмите на опцию Ветви в разделе Репозиторий и нажмите кнопку Новая ветка .

Шаг 3 – На экране Новая ветка введите имя для ветви и нажмите кнопку Создать ветвь .

Шаг 4 – После создания ветки вы увидите экран, показанный ниже, вместе с созданной веткой.
GitLab для начинающих: зачем он нужен в мире, где есть GitHub

Статья рассчитана на читателей, которые уже хотя бы немного знакомы с Git. Изучить основы работы с системой контроля версий можно бесплатно в большом курсе Хекслета.
Бесплатные курсы по программированию в Хекслете
- Освойте азы современных языков программирования
- Изучите работу с Git и командной строкой
- Выберите себе профессию или улучшите навыки

Что такое GitLab и зачем он нужен
GitLab — сервис для хранения и управления Git-репозиториями. Как и его более известный конкурент, GitHub, он значительно облегчает коллективный труд разработчиков, позволяя им писать и редактировать код, а также его тестировать и развертывать без лишних проблем.
Работать с GitLab можно по-разному: как через командную строку, Web IDE (встроенный IDE для работы в браузере), так и через сторонние Git-клиенты. Скажем сразу, правильного способа нет: каждый работает, как ему удобно, в зависимости от задач и доступных устройств.
GitLab vs GitHub
Существенных различий между GitLab и GitHub на самом деле практически нет. Разве что:
- GitLab — проект с открытым исходным кодом, поэтому сообщество может улучшать платформу. На GitHub эта возможность доступна только разработчикам.
С 2018 года владельцем GitHub является компания Microsoft, что, учитывая репутацию этого гиганта, было воспринято сообществом неоднозначно. Тем не менее популярность GitHub выше, чем у GitLab: у платформы не было конкурентов с 2008 года. О GitLab тогда еще мало кто знал — он появился только в 2011 году, а активно развиваться начал далеко не сразу.
Что выбрать начинающему разработчику?
Оба сервиса хорошо справляются с большинством задач разработки, однако:
- GitLab лучше приспособлен для хранения приватного контента, так как это опенсорсный проект, позволяющий поднять собственный сервер. Поэтому он подойдет командам разработчиков и компаниям с ограниченным бюджетом, которые не хотят открывать свой код общественности. Также GitLab удобен для создания частного репозитория, в котором независимый разработчик может хранить свой контент.
- GitHub идеален для тех программистов, которые хотят делиться своим кодом с сообществом при работе над различными опенсорсными проектами. Также GitHub выбирают те, кто желает собрать авторитетное портфолио, так как он поощряет персональные странички (есть даже соответствующие ачивки).
А вот для веб-разработки подойдут оба проекта: для этих целей у обоих есть свои Pages. Держите ссылки на них для GitLab и для GitHub .
Читайте также: Как правильно составлять описания коммитов и почему это важно
Ключевые особенности GitLab
- Совместимость. Гитлаб поддерживает интеграцию с популярными платформами и сервисами — Docker, Kubernetes, Jira, сервисы от Google, а также имеет инструментарий для совмещения практически с любыми приложениями. Это означает, что GitLab может быть легко интегрирован и в корпоративную среду.
- Метки и документация. Удобная система меток, которая значительно упрощает процесс разработки, позволяя классифицировать ошибки или запросы. Также с ее помощью можно отслеживать изменения, выполняемые по своим или чужим проектам. Система документации на Гитлабе выстроена так, что каждый проект документируется в отдельном репозитории.
- Гибкие настройки доступа. Доступ к репозиториям настраивается в соответствии с группой, в которой находится пользователь. Закрытые ветки создаются с использованием встроенного модуля, который позволяет настраивать права для каждого пользователя. И благодаря собственной системе защиты от киберугроз GitLab предлагает безопасную аутентификацию.
- Удобный импорт и экспорт данных. Сервис позволяет легко импортировать большие объемы данных из разных источников. Это обеспечивается за счет интеграции с популярными решениями, например, Jira. Также пользователям доступны инструменты для синхронизации кода.
- Kubernetes по умолчанию для развертывания. Удобное решение для тех, кто занимается разработкой и тестированием приложений, поскольку Kubernetes — самый популярный оркестратор в среде контейнеризации.
- Выделенное пространство в облаке. GitLab предлагает всем пользователям бесплатное размещение проектов в облаке. Кроме того, в GitLab можно бесплатно создавать частные репозитории для хранения открытого кода.
- Инструменты аналитики и планирования. Аналитические инструменты Гитлаба позволяют отслеживать время, затраченное на каждую задачу, планировать дальнейшую работу, отслеживать активность каждого разработчика. А инструмент Burndown Chart понравится тем, кто использует в разработке метод спринтов.
- Регулярные обновления. Гитлаб обновляется каждый месяц, причем значительное внимание уделяется удобству и безопасности работы.
GitLab Runner
GitLab Runner — полезный веб-инструмент для выполнения инструкций файлов репозиториев. Устанавливать GitLab Runner необходимо тем, кто собирается выполнять настройку CI/CD собственного проекта. Но в первую очередь нужно установить Docker — платформу контейнеризации, с помощью которой выполняется создание образов и развертывание контейнеров.
GitLab CI/CD
CI/CD — технология непрерывной интеграции и доставки. CI/CD помогает автоматизировать и масштабировать проекты, что значительно сокращает время разработки. GitLab CI/CD — инструмент, который позволяет превратить Гитлаб в полноценную платформу для DevOps со всеми необходимыми функциями.
GitLab CI/CD обеспечивает управление конфигурациями через yaml-файлы, стабильный запуск в различных средах, сборку и выполнение в разных операционных системах. Кроме того, с помощью этого инструмента можно выполнять интеграцию с кластерами Kubernetes и работать с задачами в окружениях Docker.
Дальше мы предсказуемо сравним GitLab CI/CD со схожим по функциям инструментом Гитхаба — GitHub Actions.
GitLab CI/CD vs GitHub Actions
Чтобы при переходе с GitHub Actions на GitLab CI/CD у новичка не возникло трудностей, рассмотрим основные различия между этими инструментами.
- В CI/CD скрипты в заданиях выполняются с помощью ключа script , а в Actions для этого используется ключ run .
- Задания на разных платформах в CI/CD выполняются с помощью ключа tags , а в Actions — с помощью runs-on .
- Оба инструмента могут работать с заданиями в образах Docker, а также указывать дополнительные контейнеры, для чего в CI/CD используется ключ image , а Actions — container .
- При выполнении заданий с условиями CI/CD использует ключ rules , а Actions — if .
- Для выполнения заданий с зависимостями в CI/CD есть ключ stages , а в Actions используется needs .
Посмотреть примеры кода для каждого сервиса, а также узнать о некоторых менее существенных расхождениях можно в официальной документации GitHub по этой теме. И, хотя инструкция называется «Миграция с GitLab CI/CD на GitHub Actions», она подойдет и при переходе с Actions на CI/CD.
Читайте также: Как присоединиться к работе над опенсорсом, что такое PS1 и другие вопросы: отвечает разработчик Хекслета Андрей Мошков
Немного практики: первый проект на GitLab
Чтобы создать проект на GitLab, нужно выполнить несколько несложных шагов:
- Создать учетную запись и рабочую группу
- Создать репозиторий
- Загрузить файлы
- Добавить ключи авторизации.
Теперь о каждом из этих шагов подробнее.
Создание учетной записи и рабочей группы на GitLab
После нажатия на кнопку Login на сайте проекта появится кнопка регистрации. Кликнув на нее, вы перейдете в форму, где нужно будет заполнить ряд стандартных полей, а затем подтвердить регистрацию из письма, которое сервис отправит на указанный email.
После успешного создания учетной записи приступаем к настройке GitLab. Для этого переходим в свой профиль и заполняем нужные поля, включая имя группы. Также вас попросят указать, будете ли вы работать в одиночку или в составе команды.
Создание репозитория в GitLab
После создания группы в верхней панели появится иконка с плюсиком: кликните на выпадающее меню рядом и выберите пункт New project или New project/repository . Далее выбираем уровень приватности. Если не хотите, чтобы ваш код был виден другим пользователям и вообще никому, кроме вас, выберите из выпадающего меню уровень Private . Теперь можно приступать к загрузке файлов в репозиторий Git, который будет сформирован вместе с проектом.
Загрузка файлов в GitLab
Файлы загружаются одним из трех способов:
- Через веб-интерфейс нажатием на кнопку Upload File
- Через командную строку при помощи программы git
- Через сторонний Git-клиент, например, Sublime Merge или Tower.
Можно также использовать и Web IDE, предназначенный для работы в браузере.
Добавление ключей авторизации
Для генерации ключа понадобится ввести в терминале команду ssh-keygen , при этом директорию, где будут храниться ключи, можно оставить по умолчанию. Далее сервис предложит ввести пароль, а затем скопировать ключ из папки (его можно узнать по расширению .pub) и вставить его на сайте GitLab: нажмите на пункт SSH-keys в меню слева. Узнать больше об установке Git вы можете, изучив наши инструкции .
Дальнейшая работа
Первичная настройка GitLab на этом завершена. Теперь можно приступать к работе с ветками проекта, добавлять новых пользователей и делать многие другие вещи (например, отправлять баг-репорты). Приведем основные полезные функции:
- Для создания новой ветки перейдите в репозиторий, откройте уже знакомое по внешнему виду меню с плюсиком и выберите пункт New Branch . Те, кто пользуется git-клиентами, могут сделать то же самое командой git checkout или с помощью графического интерфейса
- Для объединения веток проекта в одну (этот процесс называется мерджинг или слияние) нажмите на кнопку Create merge request и заполните необходимые поля. Потребуется написать поясняющий комментарий, указать автора запроса, проверяющего и поставить теги, после чего подтвердить слияние
- Добавление новых пользователей осуществляется через левое меню. Выберите там Project information и далее Members . В открывшейся форме, помимо ника и электронной почты, укажите роль пользователя и дату, когда срок действия его прав истечет, и он будет исключен из проекта. Это время всегда можно продлить.
- Для оповещений коллег и пользователей о каких-либо проблемах — чаще всего это баги или ошибки, — выберите в левом меню пункт Issues . Далее по клику на кнопку New Issue , откроется форма, где нужно будет указать название и добавить описание проблемы, а также назначить ответственного — Assignee .
Бесплатные курсы по программированию в Хекслете
- Освойте азы современных языков программирования
- Изучите работу с Git и командной строкой
- Выберите себе профессию или улучшите навыки
¶ Git и GitLab
Git — распределённая система контроля версий, которая даёт возможность разработчикам отслеживать изменения в файлах и работать совместно с другими разработчиками. Git выполняет все операции локально, что увеличивает его скорость. Кроме того, он локально сохраняет весь репозиторий в небольшой файл без потери качества данных.
GitLab — веб-приложение и система управления репозиториями программного кода для Git. Обычно GitLab используется вместе с Git и даёт разработчикам возможность сохранять их код онлайн, а затем взаимодействовать с другими разработчиками в разных проектах.
¶ Установка Git
Перед началом работы с GitLab установите себе на устройство приложение Git по ссылке.
Найти подробную инструкцию по установке Git можно здесь.
¶ Авторизация в GitLab
Авторизуйтесь в сервисе GitLab через корпоративную почту @miem.hse.ru.

Затем выберите в верхней панели раздел «Groups». Щелкните на «Your Groups». На этой странице должна находиться группа с номером и названием вашего проекта. Нажмите на нее, чтобы открыть.
Если после авторизации вы не видите группу своего проекта, то обратитесь в Техподдержку.
¶ Установка пароля
После авторизации нужно установить пароль для вашего аккаунта в GitLab.
- Нажмите на вашу иконку в правом верхнем углу и перейдите в раздел «Настройки» (settings).
- Затем перейдите во вкладку «Пароль» (password).

- Укажите ваш новый пароль и сохраните его.
¶ Создание репозитория
¶ Что такое репозиторий?
Репозиторий (хранилище) — место, где хранятся и поддерживаются данные. Чаще всего данные в репозитории хранятся в виде файлов.
В GitLab используются проекты — структура, включающая в себя репозиторий Git, настройки, обсуждения и другие сопутствующие инструменты.
Узнать более подробную информацию можно перейдя по ссылке: что такое репозиторий?
¶ Как создавать репозиторий?
Шаг 1. Зайдите в свой аккаунт на GitLab и нажмите на иконку «Groups» в верхней панели.

Шаг 2. Затем перейдите во вкладку «Your group».
Шаг 3. Выберите команду с названием вашего учебного проекта.

Если вы не видите в разделе «Your group» команду вашего проекта, то обратитесь в Техподдержку.
Шаг 4. Вы перешли на страницу своей команды. Теперь нужно создать репозиторий. Для этого нажмите на кнопку «New project».
Если у вас уже есть нужный вам репозиторий, то перейдите к шагу 6.

Шаг 5. Напишите название вашего репозитория и добавьте нужные данные. Готово!
_%D1%80%D0%B5%D0%B4_0.png)
Рекомендуем установить галочку напротив «Инициализировать репозиторий файлом README» — в репозитории появится документ «README. md», в котором можно описывать файлы, содержащиеся в этом репозитории.
Если вы хотите залить сюда файлы из уже существующего репозитория, то можеть не создавать новый «README. md».
Шаг 6.
- Для этого зайдите на страницу нужного вам проекта. Далее перейдите в настройки.

- Опуститесь до раздела «Advanced» и разверните его с помощью кнопки «Expand«.

- Найдите внутри блок «Transfer project» и с помощью селектора выберите новое расположение.

Переместить проект может человек только с ролью «Maintainer»(подробнее в разделе участники и роли)
Перенос существующего репозитория с другой платформы
Если проект был создан на другой платформе (Github, Bitbucket и т.д.), то при создании нового репозитория откройте вверху вкладку «Import project» вместо «Blank project«, а затем выберите » Repo by URL«.

Нужно обязательно выбрать «Repo by URL«, в остальных случаях импорт не всегда проходит успешно
При этом вся информация по коммитам будет перенесена. Однако, чтобы она корректно отображалась и учитывалась в статистике, необходимо, чтобы коммиты были сделаны с почты @miem.hse.ru. Если коммиты были сделаны с другой почты, то необходимо добавить ее адрес в личном кабинете в Git.miem.hse.ru (подробнее в блоке «Коммит»)
¶ Локальная работа с репозиторием
Откройте нужный репозиторий и нажмите на кнопку «Clone». Скопируйте ссылку.

¶ Переход в консоль
Далее вам нужно перейти в консоль.
Как это сделать?
- Нажмите на значок поиска на Панели задач или кнопку Пуск.
- Далее нажимите «Выполнить».

- В строке поиска напечатайте «cmd».

- В результате вы увидите окно консоли.
Не на всех видах Windows консоль открывается так, как указано выше. НО на всех можно нажать Win+R и ввести cmd .
- В строке поиска Spotlight введите слово «Терминал» и нажмите Enter .
- В результате вы увидите окно терминала.
- Linux
Для открытия консоли (терминала) нажмите сочитание следующих клавиш: Alt+Ctrl+F1 .
¶ Клонирование репозитория
Для получения копии существующего Git-репозитория необходимо ввести в терминале команду git clone .
То есть мы просим Git создать копию репозитория, который находится по ссылке (), и можем указать путь к директории, в которую Git скопирует репозиторий (). Если его не указать, директория создастся в каталоге, где вы находитесь, когда выполняете команду и будет называться так же, как и сам репозиторий.
Клонирование репозитория осуществляется командой:
git clone
После вы должны ввести имя пользователя и пароль от своей учетной записи в GitLab.
Обратите внимание, что имя пользователя — это имя вашей корпоративной почты до символа «@», а пароль — это пароль, который мы ранее установили в GitLab.
Если у вас возникают ошибки авторизации, обязательно проверьте, какой у вас логин: нажмите на крайнюю кнопку справа сверху на главной странице GitLab и посмотрите, что указано под вашей фамилией.

Вы можете в любой момент перейти к папке с вашим репозиторием с помощью команды:
cd путь/к/директории
Следующая команда показывает, что файл «README.md» скачался и лежит в нашей папке:
dir (ls в Unix)

клонирование репозитория прошло успешно
¶ Заполнение данных
Первое, что вам следует сделать после установки Git — указать ваше имя и адрес электронной почты. Каждый коммит в Git, сделанный вами, будет содержать эти данные. Это информация о разработчике, который вносит изменения.
Используем следующие команды:
git config —global user.name «Иван Иванов»
git config —global user.email ivivanov@miem.hse.ru
Если указана опция —global , то эти настройки достаточно сделать только один раз, поскольку в этом случае Git будет использовать эти данные для всего, что вы делаете в этой системе. Если для каких-то отдельных проектов вы хотите указать другое имя или электронную почту, можно выполнить эту же команду без параметра —global в каталоге с нужным проектом.
Если вы хотите проверить используемую конфигурацию, можете использовать команду git config —list , чтобы показать все настройки, которые Git найдёт:

¶ Добавление файлов в репозиторий
Одной из важнейших команд является git status . Система отслеживает изменения, и с помощью этой команды мы узнаем о состоянии системы. Если выполнить эту команду сразу после клонирования, то можно увидить что-то вроде этого:

Это означает, что у вас чистый рабочий каталог. Другими словами, в нем нет отслеживаемых измененных файлов. Git также не обнаружил неотслеживаемых файлов, в противном случае они бы были перечислены здесь.
Если у вас уже есть некоторые файлы, которые нужно перенести в репозиторий, вы можете скопировать их в рабочий каталог.
¶ Встроенный редактор GitLab
GitLab предоставляет простой способ внести небольшие изменения в файлы проекта. Это среда разработки, встроенная в сайт GitLab. Чтобы её запустить, найдите файл, который нужно отредактировать и щелкните по его названию. На открывшейся странице вы увидите содержимое файла и две кнопки: Edit и Web IDE . Первая кнопка откроет файл для простого редактирования, вторая запустит встроенную среду разработки.
Также на сайте предусмотрена возможность создавать новые файлы. Для этого на странице репозитория нажмите на кнопку «+» и выберите «New file» . В открывшемся редакторе введите имя файла и нужное содержимое. Не забудьте нажать на кнопку Commit changes по завершении редактирования.
Кроме того, для частых типов файлов предусмотрены отдельные кнопки. Вы найдёте их над списком файлов на странице репозитория. Так вы, например, сможете быстро добавить файл README.md в ваш проект. Просто нажмите на кнопку Add README .
¶ Изменения в существующем файле
Чтобы внести изменения в файл, который скопировался вместе с репозиторием, просто перейдите в папку с копией репозитория на компьютере и откройте этот файл. В нашем случае, это файл «README.md». Он должен содержать описание репозитория, отображаемое на его странице на сайте. Добавьте в него новую строку и сохраните:

Если вы выполните команду git status , то увидите свои неотслеживаемые изменения в файле:
_0.png)
Мы видим, что у нас есть недобавленные изменения.
Для добавления изменений используется команда git add . Команда git add . добавляет все изменения в рабочей директории в индекс для последующего коммита.
¶ Что такое коммит?
Коммит — это сохранение, фиксация (в архиве, репозитарии и т.д.) изменений в программном коде.
Команда git commit берёт все данные, добавленные в индекс с помощью git add , и сохраняет их слепок во внутренней базе данных, а затем сдвигает указатель текущей ветки на этот слепок.
При коммите данных их необходимо комментировать, чтобы в дальнейшем каждое изменение в проекте было с описанием действий. Для этого используется команда
git commit -m «комментарий»

Теперь все нужные изменения добавлены в наш локальный репозиторий.
¶ Добавление нового файла в удаленный репозиторий
Для того чтобы залить изменения в удаленный репозиторий, который находится на git.miem.hse.ru, нужно использовать команду git push .
Рассмотрим пример:
Создадим новый файл «text.txt» в папке «main» и выполним следующие действия:
Шаг 1. Добавим файл в нашу папку main;
Шаг 2. Зафиксируем изменения и узнаем текущее состояние файла;
_0.png)
Шаг 3. Отправим изменения в локальное хранилище (то есть выполним коммит).
_0.png)
С помощью команды git push отправим данные локального репозитория на удаленный репозиторий (Origin — это наш репозиторий).
_0.png)
Заходим в GitLab и видим, что отправка данных прошла успешно.

¶ Отмена действий
Если вы добавили файлы в состояние ожидания, но передумали и не хотите добавлять некоторые из них, то нужно использовать команду:
git rm —cached «название файла»
Укажите, какой файл необходимо удалить из ожидания на коммит.
¶ Проблемы при входе
- Если вы ввели неправильно пароль (на Windows), а во второй раз ваши данные не запрашиваются, то вам нужно сделать следующие действия:
панель управления -> учетные записи -> диспетчер учетных данных -> удалить данные GitLab
После чего заново повторить первые шаги с вводом ваших данных. - Чтобы на устройствах Linux/Mac каждый раз не запрашивался пароль, нужно использовать следующую команду:
git config credential.helper store
¶ Полезные ссылки:
- Основные понятия: Ветки
- Основные понятия: Зеркалирование репозитория
- Управление командой: Различия прав доступа
- Навигация: Уровень видимости проекта