что такое gitlab и для чего он нужен
Как работать с GitLab
Сегодня поговорим об азах взаимодействия с одной из самых популярных git-систем.
Что такое GitLab
Сейчас почти никто не пишет код в одиночку. Команды инженеров и разработчиков растут, как на дрожжах. Работая в группах, программисты используют системы управления исходным кодом на базе git, специального инструмента, позволяющего хранить данные разрабатываемого проекта в сети и совместно редактировать его с учетом определенных правил и методик взаимодействия. Самый известный подобный сервис – GitHub. А GitLab – это его собрат, выполняющий те же функции, но устроенный несколько иначе.
GitLab позволяет управлять репозиториями с кодом, отслеживать ошибки в разрабатываемых программах, публиковать код и тестировать его. Это незаменимый инструмент для каждого, кто программирует не в одиночку.
Разница между GitLab и GitHub
Оба сервиса – системы управления репозиториями на базе git. Принципиальных отличий между ними нет. GitHub появился раньше и стал чуть ли не синонимом git, поэтому он популярнее и для многих является единственной системой для управления репозиториями.
Но GitLab есть что предложить с точки зрения функциональности, поэтому все чаще наблюдается переход пользователей с GitHub на GitLab. В частности, это касается разработчиков-новичков, которые пока еще не «приросли» к GitHub.
В связи с растущей популярностью GitLab я и решил познакомить вас с этим сервисом поближе.
Инструкция по использованию GitLab
Перед началом работы с сервисом, нужно создать учетную запись. Процедура эта весьма тривиальна:
Заходим на официальный сайт GitLab.
В верхнем левом углу находим кнопку Login и жмем по ней.
Через пару секунд перед вам откроется форма входа в систему, а под ней будет ссылка на форму регистрации (Register now). Переходим по ней.
Заполняем данные для регистрации (классические данные: адрес электронной почты, пароль, логин и т.п.). Жмем на кнопку Register.
В течение пары минут на указанную при регистрации почту «упадет» сообщение со ссылкой для подтверждения создания аккаунта. Переходим по ней.
Учетная запись готова. Теперь можно переходить непосредственно к знакомству с GitLab.
Как создать проект
Проектом в GitLab считается глобальное рабочее пространство, в котором будет размещен репозиторий с файлами ваших сайтов и приложений. А также в нем можно взаимодействовать с коллегами и использовать другие возможности сервиса.
Поэтому при первом входе под своей учетной записью GitLab попросит вас указать род деятельности, наличие или отсутствие команды, имя рабочей группы и название проекта.
После формирования проекта можно переходить непосредственно к созданию репозиториев, загрузке программ в GitLab и т.п.
Как создать репозиторий
Чтобы воспользоваться репозиторием, нужно создать новый проект:
Кликаем по иконке со значком + в панели управления.
Выбираем пункт New project/repository.
Затем кликаем по Create blank project.
Указываем его имя и другие запрашиваемые параметры (можно указать, публичным будет репо или приватным) и нажимаем на кнопку Create Project.
Вместе с проектом сформируется новый git-репозиторий. Теперь можно с ним взаимодействовать, то есть загружать файлы, делать коммиты, создавать различные ветки для разработки продукта и мерджить их при необходимости.
Как загрузить файлы сайта/приложения в GitLab
Первый – используем веб-интерфейс GitLab
На главной странице проекта ищем строку The repository for this project is empty, а под ней кнопку Upload File и нажимаем на нее.
GitLab предложит выбрать файлы проекта для загрузки и последующей работы с ними. Выбираем все файлы, что используем при разработке и выгружаем.
Также можно использовать WebIDE, встроенную в GitLab, чтобы прямо в браузере писать код и создавать файлы для своего приложения/сайта.
Второй – используем командную строку
Тут все сложнее, но на самом GitLab опубликована короткая и доходчивая инструкция по подключению к сервису через командную строку, используя классический git-клиент.
Третий – используем сторонний git-клиент
Существуют приложения в духе Tower и Sublime Merge, позволяющие управлять репозиториями, делать коммиты и пушить изменения в проекты при помощи удобного графического интерфейса. Можно подключиться к GitLab с помощью одной из таких программ.
Как добавить SSH-ключ для подключения к репозиторию
SSH-ключи можно использовать для авторизации в GitLab и для управления репозиториями по протоколу Secure Shell. Чтобы это сделать:
Генерируем ключ с помощью команды ssh-keygen (вводим ее в терминал).
Генератор предложит сохранить получившийся ключ. Менять директорию, куда сохраняется ключ, необязательно.
Затем утилита попросит ввести пароль. Его тоже можно не вводить. Просто жмем на Enter.
Возвращаемся на сайте GitLab. Открываем раздел SSH-keys, вставляем ключ в специально отведенное для этого поле и нажимаем на кнопку Add key.
Как работать с ветками
Ветки – это инструмент для создания дополнительных вариаций приложения/сайта, которые позволяют вести разработку новых функций, не затрагивая при этом основное приложение, доступное для пользователей.
По умолчанию в GitLab доступна только одна ветка – master. Но ее чаще используют не для разработки, а для публикации готовых сборок проекта, которые нестрашно превратить в релиз для масс.
Поэтому принято создавать новые ветки для разработки дополнительных функций, а уже потом объединять их с основной.
Как создавать ветки
Ветки – не уникальная для GitLab функция. Это часть git, поэтому, как и в случае с репозиториями, тут можно пойти тремя путями:
На сайте GitLab в окне управления репозиторием нажать на кнопку + справа от названия ветки, а потом выбрать пункт New branch в выпадающем меню.
Или воспользоваться аналогичной функций в используем графическом git-клиенте (Tower, Sublime Merge, GitFox и т.п.).
Любой из способов позволит создавать новую ветку, в которую после этого можно будет отправлять коммиты и делать пуши.
Мерджинг веток
Мерджинг (или объединение) веток – это механизм слияния двух наборов функций одной программы, позволяющий переносить функции из дополнительных веток в основную ветку разработки, где лежит приложение. Результат увидят еще и пользователи, а не только разработчики.
Запрос на объединение веток будет появляться на сайте GitLab каждый раз, когда вы будете вносить изменения в код одной или нескольких веток.
Выглядит это следующим образом:
На сайте появляется большая синяя кнопка Create merge request. Кликаем по ней.
Затем рассказываем о своем запросе (поясняем, для чего он делается).
Указываем автор запроса в поле Assignee.
Указываем человека, который будет проверять запрос в поле Reviewer.
Потом указываем Milestone (если используете их).
И нажимаем на Create merge request.
Если с запросом все ок, то проверяющий нажмет на кнопку Merge, и весь код перекочует в основную ветку проекта (ну или ту, которую указал автор запроса).
Как добавлять пользователей в проект
К разработке своего приложения/сайта всегда можно привлечь людей со стороны:
Для этого кликаем по кнопке Project information в боковой панели GitLab.
Выбираем пункт Members.
В графу GitLab member or Email address вписываем ник GitLab-пользователя или его email-адрес.
Выбираем для него роль (гость, наблюдатель, разработчик).
Также указываем время действия приглашения (в указанный день приглашенный будет исключен из проекта).
А потом кликаем на Invite.
Если выбранный человек согласится присоединиться, то ваша команда расширится.
Как создавать баг-репорты
В git-системах есть инструменты, помогающие оповещать разработчиков об ошибках и обсуждать их как с пользователями, так и с коллегами.
Речь идет о разделе Issues. Если возникла проблема, то нужно сообщить о ней тут. Для этого:
Открываем раздел Issues в боковой панели управления.
Затем нажимаем на кнопку New issue.
Даем имя обнаруженной проблеме, а затем подробно описываем ее в разделе Description.
Затем назначаем ответственного в пункте Assignee и срок, в течение которого нужно найти решение найденной проблемы.
А потом нажимаем на кнопку Create issue.
Как удалить проект
Открываем настройки проекта и переходим во вкладку General.
Листаем ее до пункта Advanced и справа от него ищем кнопку Expand, которая откроет доступ к дополнительным параметрам.
Вновь пролистываем появившееся меню до упора вниз, пока не наткнемся на кнопку Delete project.
Нажимаем на нее и вписываем название проекта, чтобы его удалить.
Вместо заключения
На этом все. Я рассмотрел базовые возможности GitLab и намеренно не затрагивал аналитические инструменты, интеграцию с Kubernetes и дополнительные функции, пытаясь сконцентрироваться на важнейших концептах GitLab и git. Это то, что вам необходимо для старта, независимо от того, пользовались вы ранее другими системами управлениями репозиториями или нет.
Как пользоваться GitLab
Вы узнаете для чего нужен Gitlab, почему его используют в команде, а также познакомитесь с его основными возможностями.
Как пользоваться GitLab
Как работает GitLab
Самые важные функции:
1. создание отдельных веток от главной или так называемого «мастера», можно сказать, продакшн-версии проекта. Такое ветвление как бы создает копию, что позволяет эксперементировать, работая над разными участками кода, не затрагивая при этом исходный проект (откуда была создана ветка).
2. Когда вы довольны внесенными изменениями, можно отправить запрос на слияние. Запрос на слияние отправляется владельцу проекта, который может просмотреть внесенные вами изменения и задать любые дополнительные вопросы. Если владельца проекта все устраивает, он может объединить ваши изменения с исходным кодом.
3. подтягивание изменений с удаленного репозитория. Если код проекта обновился, все участники проекта смогут «подтянуть» изменения, то есть обновить проект до самой актуальной верии одной командой,
Работа с GitLab
1. СОЗДАНИЕ АККАУНТА
Для входа в свою учетную запись перейдите по ссылке ссылке.
Если у вас еще нет аккаунта на gitlab нажмите «Register now» и заполните нужные поля. Далее нужно будет подтвердить регистрацию с помощью письма, которое будет отправлено вам на электронную почту.
После ввода имени пользователя и пароля, вы окажетесь на главной странице вашего GitLab профиля. Когда у вас будут активные проекты (репозитории), они будут отображаться здесь.
2. СОЗДАНИЕ НОВОГО ПРОЕКТА/РЕПОЗИТОРИЯ
Чтобы создать новый проект нажмите «+«, который находится на верхней панели и нажмите «новый проект» («new project»):
Если поставить галочку напротив «Initialize repository with README», то проект инициализируется и создается файл README.txt. Делать это здесь не обязательно!
После заполнения полей, подтверждаем действие нажатием «Create repo«, после чего попадаем на страницу репозитория. На этой странице можно создать файлы или подгрузить их со своего компьютера.
3. ПЕРЕНОС ПРОЕКТА НА УДАЛЕННЫЙ РЕПОЗИТОРИЙ GITLAB
Давайте создадим новый репозиторий на своем компьютере и перенесем его содержимое на GitLab. Так проект станет доступным для всех, кто является участником проекта.
Прежде всего репозиторий нужно создать и инициализировать командой «git»:
Создаем репозиторий с помощью командной строки (название репозитория пусть будет repo_name):
Переходим в репозиторий проекта:
Давайте создадим файл test_file.txt:
Теперь зафиксируем изменения(-m означает сообщение комита):
Дальше нам нужно добавить созданный удаленный репозиторий с GitLab к нашему локальному. Для этого выполните команду:
Чтобы проталкивания изменений в удаленный репозиторий нужно выполнить команду:
После этого потребуется ввести данные учетной записи.
Проект перенесен на удаленный репозиторий. Вы можете зайти на gitlab и проверить.
Если удаленный репозиторий не пуст, например, при создании проекта вы уже инициализировали его, добавив файл README, то выполнить эти действия не получится.
В этом случае нужно сначала скачать удаленный репозиторий, слить локальные изменения с ним, а потом уже отправлять изменения.
4. ДОСТУП ПО SSH-КЛЮЧУ
SSH-ключ нужен, прежде всего, для того, чтобы при каждой отправке и загрузке изменений удаленного репозитория не приходилось вводить логин и пароль.
SSH-ключ создаётся с помощью команды:
Склонировать репозиторий по ssh-ключу
Далее перейдите в ваш удаленный репозиторий на gitlab, найдите кнопку Clone в правом верхнем углу. Нажав по ней, вы увидите, что проект можно склонировать на локальный компьютер, используя ssh-ключ:
Переходим к локальному репозиторию (на вашем компьютере), удаляем https-адрес и добавляем скопированный ssh адрес:
Готово! Теперь есть доступ к проекту на gitlab по ssh-ключу. Логин и пароль вводить не надо.
5. РАБОТА С ВЕТКАМИ
По умолчанию у вновь созданного репозитория есть только master ветка. Как уже упоминалось, это главная ветка, там может хранится ПО, которое используется в продакшн.
Для того, чтобы экспериментировать, создавать новые функции, не рискуя при этом вызвать фатальные ошибки или сбой в работе ПО, нужно рабоать в отделных ветках. Например, в отдельную ветку может выноситься новый функционал или в отдельной ветке может работать определенный участник проекта. Вот так в интерфейсе gitlab выглядят ветки:
Создание ветки
Создать новую ветку можно двумя способами:
1. используя git:
2. используя интерфейс gitlab:
Кликаем по значку «+» и нажимаем «New branch«.
Если вы используете git для создания ветки, то после проталкивания изменений в удаленный репозиторий, ветка появится там автоматически.
Проталкивание локальных изменений в удаленный репозиторий
Итак, представим, что мы сделали какие-то изменения в ветке «new-feature» (в данном случае добавили файл new_file).
Для того, чтобы эти изменения перенеслись в вашу ветку «new-feature» на удаленном репозитории нужно выполнить команды:
6. СЛИЯНИЕ ВЕТОК
Для того, чтобы перенести функционал, разработанный в какой-то ветке в другую ветку, нужно делать запрос на слияние (merge request).
Сделать это можно через интерфейс GitLab. Нужно нажать на кнопку «Create merge request«.
Если изменения проверены и вы готовы влить их в целевую ветку, нажмите кнопку «merge». Все изменения будут добавлены в целевую ветку.
! все удаленные в сливаемой ветке файлы удалятся и в целевой ветке при слиянии, а измененные файлы заменят старые. Те файлы, которые вы не меняли останутся в прежнем состоянии.
7. ДОБАВЛЕНИЕ ПОЛЬЗОВАТЕЛЕЙ К ПРОЕКТУ
Как уже упоминалось, зачастую в репозитории работает не один человек, а целая команда. Для того, чтобы добавить к проекту разработчиков откройте настройки (Settings). Перейдите во вкладку Members. Здесь в окне Select или Invite member введите логин или email пользователей, которых хотите пригласить и выберете их роль в проекте выберите. Нажмите кнопу «Invite«.
Сохраняйте статью к себе на стену, чтобы не потерять ⬇
Что такое GitLab, как и для чего он используется
GitLab — это инструмент для хранения и управления репозиториями Git. Он дает возможность выполнять совместную разработку силами нескольких команд, применять обновления кода и откатывать изменения, если это необходимо.
Решение может работать на собственном сервере или в облаке. Для обоих случаев существуют полностью бесплатная версия и платные тарифы, стоимость которых зависит от функционала (подробнее о тарифах GitLab ниже).
В этой статье мы рассмотрим установку бесплатной версии GitLab Community Edition (GitLab CE) на сервер с Ubuntu 20.04 LTS x86_64, сравним GitLab с GitHub, разберемся с возможностями платных и бесплатных версий GitLab и расскажем как пользоваться GitLab. Но для начала подготовим выделенный сервер для разворачивания демо-стенда.
Чтобы создать сервер, откроем панель управления my.selectel.ru и перейдем в меню Серверы и оборудование, затем нажмем кнопку Заказать сервер.
В нашем примере для GitLab используется выделенный сервер фиксированной конфигурации EL09-SSD с процессором Intel Xeon E-2236, 16 Гб оперативной памяти, двух SSD-дисков по 480 Гб и операционной системой Ubuntu 20.04 LTS 64-bit.
После выбора сервера нажимаем кнопку Оплатить сейчас и ожидаем готовности сервера.
Примерно через 2 минуты физический сервер будет готов, а мы пока расскажем о возможностях Gitlab.
Возможности GitLab
Возможности GitLab делятся на следующие категории:
Мы расскажем про основные в каждой категории.
Управление
Планирование
Создание
Проверка
Упаковка
Безопасность
Релизы
Конфигурирование
Мониторинг
Защита
Полный список возможностей приведен на сайте GitLab. Там же можно узнать подробнее о каждой.
Как установить и настроить GitLab на Ubuntu
Пока вы узнавали о возможностях GitLab, сервер успешно установлен и готов к работе. Подключаемся по SSH к серверу, переходим в директорию /tmp и загружаем установочный скрипт репозиториев GitLab:
После загрузки скрипта, он необходимо добавить права на его исполнение:
Теперь скрипт готов к исполнению и можно его запускать:
После установки репозитория, можно запускать менеджер пакетов apt и начинать установку GitLab:
После выполнения установки, появится сообщение о готовности GitLab к работе:
Для доступа к GitLab через веб-интерфейс, его необходимо настроить. Для этого откроем для редактирования конфигурации в файле /etc/gitlab/gitlab.rb и укажем переменной external_url в качестве значения URL-адрес сервера.
В нашем демо вместо имени используется IP-адрес.
Теперь, чтобы новая конфигурация вступила в силу, необходимо выполнить реконфигурацию GitLab:
После окончания процесса конфигурации, откроется интерфейс GitLab и запрос на изменения пароля администратора.
После изменения пароля необходимо выполнить вход в GitLab:
GitLab полностью готов к работе и даже имеет тестовый проект.
Однако, GitLab по умолчанию работает по протоколу http. Чтобы переключить его на протокол https, необходимо изменить значения переменных letsencrypt[‘enable’], letsencrypt[‘contact_emails’] и в переменной external_url указать протокол https:
После внесения изменений в конфигурацию, выполним реконфигурацию GitLab:
После реконфигурации GitLab, появится возможность подключаться к веб-интерфейсу по протоколу https.
Если GitLab установлен во внутренней сети и к нему требуется доступ извне, одним из вариантов организации такого доступа может быть настройка проксирования на nginx-сервере (или proxy_pass) с установкой на него ключа Let’s Encrypt. В этом случае в настройках GitLab можно спокойно оставлять доступ по протоколу http.
Иногда, при попытке доступа через веб-интерфейс, GitLab возвращает ошибку 502. Причины могут быть разные, но основные это: нехватка оперативной памяти, остановка службы gitlab-workhorse и изменение прав доступа к файлу /var/opt/gitlab/gitlab-workhorse/socket. В первом случае проблему решит добавление оперативной памяти, во втором перезагрузка сервисов GitLab, а в третьем предоставление сервису nginx доступа к файлу.
Как работать с GitLab
Чтобы упростить работу с репозиториями из командной строки, необходимо добавить собственные ssh-ключи в GitLab. Генерируем пару ssh-ключей:
Следующий шаг — вывод содержимого публичного ключа и его копирование в буфер обмена:
В интерфейсе GitLab перейдем в раздел Settings:
Далее в раздел SSH Keys, где нужно вставить скопированный ключ. После этого можно нажать Add key.
Появится следующий экран:
На этом настройка к репозиториям через SSH-ключ завершена и пришло время создать новый проект. Для этого достаточно нажать на + в центральной части экрана и далее на New project.
Проекту нужно присвоить имя, а также выбрать тип проекта:
В первом случае проект будет доступен только вам, во втором всем пользователям данной инсталляции GitLab, в третьем случаем всем подряд и без авторизации.
Нажимаем на кнопку Create project:
После создания проекта можно перейти к его настройке. Например, на представлении Members в проект можно пригласить новых пользователей с различными ролями: Guest, Reporter, Developer, Maintainer:
Основы GitLab — это работа с репозиториями. Теперь загрузим в этот проект имеющийся на рабочей станции git-репозиторий. Для начала добавим ссылку на удаленный репозиторий:
Теперь загрузим репозиторий в GitLab:
Теперь через веб-интерфейс GitLab можно просмотреть исходный код локального репозитория:
GitLab позволяет также загружать исходный код обратно на рабочую станцию. Для этого нужно выполнить следующую команду:
Другой вариант загрузки — через веб-интерфейс. Для этого на странице проекта необходимо нажать кнопку ↓ и выбрать формат загружаемого архива:
Теперь разберемся, как в GitLab работать с ветками репозитория. По умолчанию работа ведется в ветке master и все предыдущие действия мы выполняли именно в ней. Для реализации изменений и их отслеживание, разработчику важно иметь собственную ветку, код из которой в дальнейшем можно будет передать в master-ветку.
Чтобы создать новую ветку, достаточно в выпадающем меню рядом с символом + нажать на пункт меню New branch:
Новую ветку также можно создать в локальном репозитории Git и затем загрузить её в GitLab. В веб-интерфейсе появится соответствующая запись о новой ветке.
Мы создали в проекте новую ветку development. В меню Settings — Repository можно выбрать ветку, используемую по умолчанию. После выбора нужно нажать на кнопку Save changes.
Поскольку разработка чаще всего ведется в нескольких ветках, в определенный момент времени появится необходимость выполнить их слияние. Cлияние веток — основа GitLab. В GitLab для реализации этого процесса предназначены запросы на слияние (Merge requests). Создадим в локальном репозитории новую ветку и назовем ее staging:
Создадим новый файл в репозитории и запишем туда произвольный текст:
Добавим этот файл к репозиторию:
Выполним коммит с комментарием:
И, наконец, загрузим новую ветку в GitLab:
Теперь можно проверить наличие новой ветки staging в интерфейсе GitLab. Перейдем в раздел Repository — Branches и обнаружим созданную ветку. Если перейти в нее, там будет созданный на предыдущих шагах файл new-staging.txt.
Перейдем в эту ветку и нажмем кнопку Create merge request:
Здесь нужно указать название слияния, его описание и, при необходимости, выбрать опцию уведомления заинтересованных пользователей. В нижней части этого экрана нужно нажать кнопку Submit merge request:
На следующем экране можно опционально нажать Approve, а затем нажать Merge:
Слияние веток репозитория выполнено.
Чем отличаются GitLab и GitHub
На специальной странице GitLab есть целая таблица сравнения в разрезе тех возможностей, о которых мы рассказывали в начале статьи. Ко всему этому можно добавить, что GitHub появился на 3 года раньше GitLab и является неким стандартом хранения репозиториев решений с открытым исходным кодом. А еще GitHub — полностью облачное решение, GitLab же может работать на локальном сервере или в облаке.
Использование того или иного инструмента обычно основано на предпочтениях людей, принимающих соответствующие решения. С каждым годом GitLab догонял по функционалу GitHub и сейчас уже во многом его превосходит.
Если говорить про отличия тарифов на GitLab и GitHub, оба решения имеют бесплатный тариф с возможностями использования приватных репозиториев. Все последующие тарифы оплачиваются в зависимости от количества пользователей в системе.
Какие существуют версии и тарифы GitLab
GitLab имеет две версии — Community Edition (CE) и Enterprise Edition (EE). У первой (именно ее мы устанавливали в этой статье) полностью открытый исходный код, а вторая построена на базе первой, но имеет дополнительные функции, код которых, увы, не открыт для всех желающих. Версия EE также бесплатная в базовой комплектации и производитель рекомендует использовать именно её, если планируется дальнейший переход на платные тарифы.
Линейка тарифов представлена на скриншоте ниже. Цена за пользователя зависит от тех функций, которые включены в подписку.
Ключевой особенностью подписок уровня Premium и Ultimate является поддержка производителя в режиме 24/7. По этой ссылке можно получить полное представление о возможностях каждой из подписок.
Заключение
Мы рассмотрели ключевые возможности GitLab. и основные моменты при установке и работе с этим инструментом. Самая полная документация доступна на странице производителя. Продукт активно развивается и его использование оправдано в проектах любой величины.