0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p><strong>Рассказываем про сервис GitLab: для чего он нужен, как им пользоваться, какие команды у него есть и как быстро создать свой проект. И, конечно же, подробно сравниваем с главным конкурентом - GitHub.</strong></p>
1
<p><strong>Рассказываем про сервис GitLab: для чего он нужен, как им пользоваться, какие команды у него есть и как быстро создать свой проект. И, конечно же, подробно сравниваем с главным конкурентом - GitHub.</strong></p>
2
<blockquote><p>Статья рассчитана на читателей, которые уже хотя бы немного знакомы с Git. Изучить основы работы с системой контроля версий можно бесплатно в<a>большом курсе Хекслета</a>.</p>
2
<blockquote><p>Статья рассчитана на читателей, которые уже хотя бы немного знакомы с Git. Изучить основы работы с системой контроля версий можно бесплатно в<a>большом курсе Хекслета</a>.</p>
3
</blockquote><h2>Содержание</h2>
3
</blockquote><h2>Содержание</h2>
4
<ul><li><a>Что такое GitLab и зачем он нужен</a></li>
4
<ul><li><a>Что такое GitLab и зачем он нужен</a></li>
5
<li><a>GitLab vs GitHub</a></li>
5
<li><a>GitLab vs GitHub</a></li>
6
<li><a>Что выбрать начинающему разработчику?</a></li>
6
<li><a>Что выбрать начинающему разработчику?</a></li>
7
<li><a>Ключевые особенности GitLab</a></li>
7
<li><a>Ключевые особенности GitLab</a></li>
8
<li><a>GitLab Runner</a></li>
8
<li><a>GitLab Runner</a></li>
9
<li><a>GitLab CI/CD</a></li>
9
<li><a>GitLab CI/CD</a></li>
10
<li><a>GitLab CI/CD vs GitHub Actions</a></li>
10
<li><a>GitLab CI/CD vs GitHub Actions</a></li>
11
<li><a>Немного практики: первый проект на GitLab</a></li>
11
<li><a>Немного практики: первый проект на GitLab</a></li>
12
</ul><h2>Что такое GitLab и зачем он нужен</h2>
12
</ul><h2>Что такое GitLab и зачем он нужен</h2>
13
<p>GitLab - сервис для хранения и управления Git-репозиториями. Как и его более известный конкурент, GitHub, он значительно облегчает коллективный труд разработчиков, позволяя им писать и редактировать код, а также его тестировать и развертывать без лишних проблем.</p>
13
<p>GitLab - сервис для хранения и управления Git-репозиториями. Как и его более известный конкурент, GitHub, он значительно облегчает коллективный труд разработчиков, позволяя им писать и редактировать код, а также его тестировать и развертывать без лишних проблем.</p>
14
<p>Работать с GitLab можно по-разному: как через командную строку, Web IDE (встроенный IDE для работы в браузере), так и через сторонние Git-клиенты. Скажем сразу, правильного способа нет: каждый работает, как ему удобно, в зависимости от задач и доступных устройств.</p>
14
<p>Работать с GitLab можно по-разному: как через командную строку, Web IDE (встроенный IDE для работы в браузере), так и через сторонние Git-клиенты. Скажем сразу, правильного способа нет: каждый работает, как ему удобно, в зависимости от задач и доступных устройств.</p>
15
<h2>GitLab vs GitHub</h2>
15
<h2>GitLab vs GitHub</h2>
16
<p>Существенных различий между GitLab и GitHub на самом деле практически нет. Разве что:</p>
16
<p>Существенных различий между GitLab и GitHub на самом деле практически нет. Разве что:</p>
17
<ul><li>GitLab - проект с открытым исходным кодом, поэтому сообщество может улучшать платформу. На GitHub эта возможность доступна только разработчикам.</li>
17
<ul><li>GitLab - проект с открытым исходным кодом, поэтому сообщество может улучшать платформу. На GitHub эта возможность доступна только разработчикам.</li>
18
</ul><p>С 2018 года владельцем GitHub является компания Microsoft, что, учитывая репутацию этого гиганта, было воспринято сообществом неоднозначно. Тем не менее популярность GitHub выше, чем у GitLab: у платформы не было конкурентов с 2008 года. О GitLab тогда еще мало кто знал - он появился только в 2011 году, а активно развиваться начал далеко не сразу.</p>
18
</ul><p>С 2018 года владельцем GitHub является компания Microsoft, что, учитывая репутацию этого гиганта, было воспринято сообществом неоднозначно. Тем не менее популярность GitHub выше, чем у GitLab: у платформы не было конкурентов с 2008 года. О GitLab тогда еще мало кто знал - он появился только в 2011 году, а активно развиваться начал далеко не сразу.</p>
19
<h2>Что выбрать начинающему разработчику?</h2>
19
<h2>Что выбрать начинающему разработчику?</h2>
20
<p>Оба сервиса хорошо справляются с большинством задач разработки, однако:</p>
20
<p>Оба сервиса хорошо справляются с большинством задач разработки, однако:</p>
21
<ul><li>GitLab лучше приспособлен для хранения приватного контента, так как это опенсорсный проект, позволяющий поднять собственный сервер. Поэтому он подойдет командам разработчиков и компаниям с ограниченным бюджетом, которые не хотят открывать свой код общественности. Также GitLab удобен для создания частного репозитория, в котором независимый разработчик может хранить свой контент.</li>
21
<ul><li>GitLab лучше приспособлен для хранения приватного контента, так как это опенсорсный проект, позволяющий поднять собственный сервер. Поэтому он подойдет командам разработчиков и компаниям с ограниченным бюджетом, которые не хотят открывать свой код общественности. Также GitLab удобен для создания частного репозитория, в котором независимый разработчик может хранить свой контент.</li>
22
<li>GitHub идеален для тех программистов, которые хотят делиться своим кодом с сообществом при работе над различными опенсорсными проектами. Также GitHub выбирают те, кто желает собрать авторитетное портфолио, так как он поощряет персональные странички (есть даже соответствующие ачивки).</li>
22
<li>GitHub идеален для тех программистов, которые хотят делиться своим кодом с сообществом при работе над различными опенсорсными проектами. Также GitHub выбирают те, кто желает собрать авторитетное портфолио, так как он поощряет персональные странички (есть даже соответствующие ачивки).</li>
23
</ul><p>А вот для веб-разработки подойдут оба проекта: для этих целей у обоих есть свои Pages. Держите ссылки на них<a>для GitLab</a>и<a>для GitHub</a>.</p>
23
</ul><p>А вот для веб-разработки подойдут оба проекта: для этих целей у обоих есть свои Pages. Держите ссылки на них<a>для GitLab</a>и<a>для GitHub</a>.</p>
24
<blockquote><h3>Читайте также:</h3>
24
<blockquote><h3>Читайте также:</h3>
25
<p>Как правильно составлять описания коммитов и [почему это важно] (<a>https://ru.hexlet.io/blog/posts/git-commit-message?promo_name=blog&promo_position=article-body&promo_type=link&promo_start=041024</a>)</p>
25
<p>Как правильно составлять описания коммитов и [почему это важно] (<a>https://ru.hexlet.io/blog/posts/git-commit-message?promo_name=blog&promo_position=article-body&promo_type=link&promo_start=041024</a>)</p>
26
</blockquote><h2>Ключевые особенности GitLab</h2>
26
</blockquote><h2>Ключевые особенности GitLab</h2>
27
<ul><li><strong>Совместимость.</strong>Гитлаб поддерживает интеграцию с популярными платформами и сервисами - Docker, Kubernetes, Jira, сервисы от Google, а также имеет инструментарий для совмещения практически с любыми приложениями. Это означает, что GitLab может быть легко интегрирован и в корпоративную среду.</li>
27
<ul><li><strong>Совместимость.</strong>Гитлаб поддерживает интеграцию с популярными платформами и сервисами - Docker, Kubernetes, Jira, сервисы от Google, а также имеет инструментарий для совмещения практически с любыми приложениями. Это означает, что GitLab может быть легко интегрирован и в корпоративную среду.</li>
28
<li><strong>Метки и документация.</strong>Удобная система меток, которая значительно упрощает процесс разработки, позволяя классифицировать ошибки или запросы. Также с ее помощью можно отслеживать изменения, выполняемые по своим или чужим проектам. Система документации на Гитлабе выстроена так, что каждый проект документируется в отдельном репозитории.</li>
28
<li><strong>Метки и документация.</strong>Удобная система меток, которая значительно упрощает процесс разработки, позволяя классифицировать ошибки или запросы. Также с ее помощью можно отслеживать изменения, выполняемые по своим или чужим проектам. Система документации на Гитлабе выстроена так, что каждый проект документируется в отдельном репозитории.</li>
29
<li><strong>Гибкие настройки доступа.</strong>Доступ к репозиториям настраивается в соответствии с группой, в которой находится пользователь. Закрытые ветки создаются с использованием встроенного модуля, который позволяет настраивать права для каждого пользователя. И благодаря собственной системе защиты от киберугроз GitLab предлагает безопасную аутентификацию.</li>
29
<li><strong>Гибкие настройки доступа.</strong>Доступ к репозиториям настраивается в соответствии с группой, в которой находится пользователь. Закрытые ветки создаются с использованием встроенного модуля, который позволяет настраивать права для каждого пользователя. И благодаря собственной системе защиты от киберугроз GitLab предлагает безопасную аутентификацию.</li>
30
<li><strong>Удобный импорт и экспорт данных.</strong>Сервис позволяет легко импортировать большие объемы данных из разных источников. Это обеспечивается за счет интеграции с популярными решениями, например, Jira. Также пользователям доступны инструменты для синхронизации кода.</li>
30
<li><strong>Удобный импорт и экспорт данных.</strong>Сервис позволяет легко импортировать большие объемы данных из разных источников. Это обеспечивается за счет интеграции с популярными решениями, например, Jira. Также пользователям доступны инструменты для синхронизации кода.</li>
31
<li><strong>Kubernetes по умолчанию для развертывания.</strong>Удобное решение для тех, кто занимается разработкой и тестированием приложений, поскольку Kubernetes - самый популярный оркестратор в среде контейнеризации.</li>
31
<li><strong>Kubernetes по умолчанию для развертывания.</strong>Удобное решение для тех, кто занимается разработкой и тестированием приложений, поскольку Kubernetes - самый популярный оркестратор в среде контейнеризации.</li>
32
<li><strong>Выделенное пространство в облаке.</strong>GitLab предлагает всем пользователям бесплатное размещение проектов в облаке. Кроме того, в GitLab можно бесплатно создавать частные репозитории для хранения открытого кода.</li>
32
<li><strong>Выделенное пространство в облаке.</strong>GitLab предлагает всем пользователям бесплатное размещение проектов в облаке. Кроме того, в GitLab можно бесплатно создавать частные репозитории для хранения открытого кода.</li>
33
<li><strong>Инструменты аналитики и планирования.</strong>Аналитические инструменты Гитлаба позволяют отслеживать время, затраченное на каждую задачу, планировать дальнейшую работу, отслеживать активность каждого разработчика. А инструмент Burndown Chart понравится тем, кто использует в разработке метод спринтов.</li>
33
<li><strong>Инструменты аналитики и планирования.</strong>Аналитические инструменты Гитлаба позволяют отслеживать время, затраченное на каждую задачу, планировать дальнейшую работу, отслеживать активность каждого разработчика. А инструмент Burndown Chart понравится тем, кто использует в разработке метод спринтов.</li>
34
<li><strong>Регулярные обновления</strong>. Гитлаб обновляется каждый месяц, причем значительное внимание уделяется удобству и безопасности работы.</li>
34
<li><strong>Регулярные обновления</strong>. Гитлаб обновляется каждый месяц, причем значительное внимание уделяется удобству и безопасности работы.</li>
35
</ul><h2>GitLab Runner</h2>
35
</ul><h2>GitLab Runner</h2>
36
<p>GitLab Runner - полезный веб-инструмент для выполнения инструкций файлов репозиториев. Устанавливать GitLab Runner необходимо тем, кто собирается выполнять настройку CI/CD собственного проекта. Но в первую очередь нужно установить Docker - платформу контейнеризации, с помощью которой выполняется создание образов и развертывание контейнеров.</p>
36
<p>GitLab Runner - полезный веб-инструмент для выполнения инструкций файлов репозиториев. Устанавливать GitLab Runner необходимо тем, кто собирается выполнять настройку CI/CD собственного проекта. Но в первую очередь нужно установить Docker - платформу контейнеризации, с помощью которой выполняется создание образов и развертывание контейнеров.</p>
37
<h2>GitLab CI/CD</h2>
37
<h2>GitLab CI/CD</h2>
38
<p>CI/CD - технология непрерывной интеграции и доставки. CI/CD помогает автоматизировать и масштабировать проекты, что значительно сокращает время разработки. GitLab CI/CD - инструмент, который позволяет превратить Гитлаб в полноценную платформу для DevOps со всеми необходимыми функциями.</p>
38
<p>CI/CD - технология непрерывной интеграции и доставки. CI/CD помогает автоматизировать и масштабировать проекты, что значительно сокращает время разработки. GitLab CI/CD - инструмент, который позволяет превратить Гитлаб в полноценную платформу для DevOps со всеми необходимыми функциями.</p>
39
<p>GitLab CI/CD обеспечивает управление конфигурациями через yaml-файлы, стабильный запуск в различных средах, сборку и выполнение в разных операционных системах. Кроме того, с помощью этого инструмента можно выполнять интеграцию с кластерами Kubernetes и работать с задачами в окружениях Docker.</p>
39
<p>GitLab CI/CD обеспечивает управление конфигурациями через yaml-файлы, стабильный запуск в различных средах, сборку и выполнение в разных операционных системах. Кроме того, с помощью этого инструмента можно выполнять интеграцию с кластерами Kubernetes и работать с задачами в окружениях Docker.</p>
40
<p>Дальше мы предсказуемо сравним GitLab CI/CD со схожим по функциям инструментом Гитхаба - GitHub Actions.</p>
40
<p>Дальше мы предсказуемо сравним GitLab CI/CD со схожим по функциям инструментом Гитхаба - GitHub Actions.</p>
41
<h2>GitLab CI/CD vs GitHub Actions</h2>
41
<h2>GitLab CI/CD vs GitHub Actions</h2>
42
<p>Чтобы при переходе с GitHub Actions на GitLab CI/CD у новичка не возникло трудностей, рассмотрим основные различия между этими инструментами.</p>
42
<p>Чтобы при переходе с GitHub Actions на GitLab CI/CD у новичка не возникло трудностей, рассмотрим основные различия между этими инструментами.</p>
43
<ol><li>В CI/CD скрипты в заданиях выполняются с помощью ключа script, а в Actions для этого используется ключ run.</li>
43
<ol><li>В CI/CD скрипты в заданиях выполняются с помощью ключа script, а в Actions для этого используется ключ run.</li>
44
<li>Задания на разных платформах в CI/CD выполняются с помощью ключа tags, а в Actions - с помощью runs-on.</li>
44
<li>Задания на разных платформах в CI/CD выполняются с помощью ключа tags, а в Actions - с помощью runs-on.</li>
45
<li>Оба инструмента могут работать с заданиями в образах Docker, а также указывать дополнительные контейнеры, для чего в CI/CD используется ключ image, а Actions - container.</li>
45
<li>Оба инструмента могут работать с заданиями в образах Docker, а также указывать дополнительные контейнеры, для чего в CI/CD используется ключ image, а Actions - container.</li>
46
<li>При выполнении заданий с условиями CI/CD использует ключ rules, а Actions - if.</li>
46
<li>При выполнении заданий с условиями CI/CD использует ключ rules, а Actions - if.</li>
47
<li>Для выполнения заданий с зависимостями в CI/CD есть ключ stages, а в Actions используется needs.</li>
47
<li>Для выполнения заданий с зависимостями в CI/CD есть ключ stages, а в Actions используется needs.</li>
48
</ol><p>Посмотреть примеры кода для каждого сервиса, а также узнать о некоторых менее существенных расхождениях можно<a>в официальной документации GitHub</a>по этой теме. И, хотя инструкция называется "Миграция с GitLab CI/CD на GitHub Actions", она подойдет и при переходе с Actions на CI/CD.</p>
48
</ol><p>Посмотреть примеры кода для каждого сервиса, а также узнать о некоторых менее существенных расхождениях можно<a>в официальной документации GitHub</a>по этой теме. И, хотя инструкция называется "Миграция с GitLab CI/CD на GitHub Actions", она подойдет и при переходе с Actions на CI/CD.</p>
49
<blockquote><h3>Читайте также:</h3>
49
<blockquote><h3>Читайте также:</h3>
50
<p>Как присоединиться к работе над опенсорсом, что такое PS1 и другие вопросы:<a>отвечает разработчик Хекслета Андрей Мошков</a></p>
50
<p>Как присоединиться к работе над опенсорсом, что такое PS1 и другие вопросы:<a>отвечает разработчик Хекслета Андрей Мошков</a></p>
51
</blockquote><h2>Немного практики: первый проект на GitLab</h2>
51
</blockquote><h2>Немного практики: первый проект на GitLab</h2>
52
<p>Чтобы создать проект на GitLab, нужно выполнить несколько несложных шагов:</p>
52
<p>Чтобы создать проект на GitLab, нужно выполнить несколько несложных шагов:</p>
53
<ul><li>Создать учетную запись и рабочую группу</li>
53
<ul><li>Создать учетную запись и рабочую группу</li>
54
<li>Создать репозиторий</li>
54
<li>Создать репозиторий</li>
55
<li>Загрузить файлы</li>
55
<li>Загрузить файлы</li>
56
<li>Добавить ключи авторизации.</li>
56
<li>Добавить ключи авторизации.</li>
57
</ul><p>Теперь о каждом из этих шагов подробнее.</p>
57
</ul><p>Теперь о каждом из этих шагов подробнее.</p>
58
<h3>Создание учетной записи и рабочей группы на GitLab</h3>
58
<h3>Создание учетной записи и рабочей группы на GitLab</h3>
59
<p>После нажатия на кнопку Login на сайте проекта появится кнопка регистрации. Кликнув на нее, вы перейдете в форму, где нужно будет заполнить ряд стандартных полей, а затем подтвердить регистрацию из письма, которое сервис отправит на указанный email.</p>
59
<p>После нажатия на кнопку Login на сайте проекта появится кнопка регистрации. Кликнув на нее, вы перейдете в форму, где нужно будет заполнить ряд стандартных полей, а затем подтвердить регистрацию из письма, которое сервис отправит на указанный email.</p>
60
<p>После успешного создания учетной записи приступаем к настройке GitLab. Для этого переходим в свой профиль и заполняем нужные поля, включая имя группы. Также вас попросят указать, будете ли вы работать в одиночку или в составе команды.</p>
60
<p>После успешного создания учетной записи приступаем к настройке GitLab. Для этого переходим в свой профиль и заполняем нужные поля, включая имя группы. Также вас попросят указать, будете ли вы работать в одиночку или в составе команды.</p>
61
<h3>Создание репозитория в GitLab</h3>
61
<h3>Создание репозитория в GitLab</h3>
62
<p>После создания группы в верхней панели появится иконка с плюсиком: кликните на выпадающее меню рядом и выберите пункт New project или New project/repository. Далее выбираем уровень приватности. Если не хотите, чтобы ваш код был виден другим пользователям и вообще никому, кроме вас, выберите из выпадающего меню уровень Private. Теперь можно приступать к загрузке файлов в репозиторий Git, который будет сформирован вместе с проектом.</p>
62
<p>После создания группы в верхней панели появится иконка с плюсиком: кликните на выпадающее меню рядом и выберите пункт New project или New project/repository. Далее выбираем уровень приватности. Если не хотите, чтобы ваш код был виден другим пользователям и вообще никому, кроме вас, выберите из выпадающего меню уровень Private. Теперь можно приступать к загрузке файлов в репозиторий Git, который будет сформирован вместе с проектом.</p>
63
<h3>Загрузка файлов в GitLab</h3>
63
<h3>Загрузка файлов в GitLab</h3>
64
<p>Файлы загружаются одним из трех способов:</p>
64
<p>Файлы загружаются одним из трех способов:</p>
65
<ul><li>Через веб-интерфейс нажатием на кнопку Upload File</li>
65
<ul><li>Через веб-интерфейс нажатием на кнопку Upload File</li>
66
<li>Через командную строку при помощи программы git</li>
66
<li>Через командную строку при помощи программы git</li>
67
<li>Через сторонний Git-клиент, например, Sublime Merge или Tower.</li>
67
<li>Через сторонний Git-клиент, например, Sublime Merge или Tower.</li>
68
</ul><p>Можно также использовать и Web IDE, предназначенный для работы в браузере.</p>
68
</ul><p>Можно также использовать и Web IDE, предназначенный для работы в браузере.</p>
69
<h3>Добавление ключей авторизации</h3>
69
<h3>Добавление ключей авторизации</h3>
70
<p>Для генерации ключа понадобится ввести в терминале команду ssh-keygen, при этом директорию, где будут храниться ключи, можно оставить по умолчанию. Далее сервис предложит ввести пароль, а затем скопировать ключ из папки (его можно узнать по расширению .pub) и вставить его на сайте GitLab: нажмите на пункт SSH-keys в меню слева. Узнать больше об установке Git вы можете, изучив<a>наши инструкции</a>.</p>
70
<p>Для генерации ключа понадобится ввести в терминале команду ssh-keygen, при этом директорию, где будут храниться ключи, можно оставить по умолчанию. Далее сервис предложит ввести пароль, а затем скопировать ключ из папки (его можно узнать по расширению .pub) и вставить его на сайте GitLab: нажмите на пункт SSH-keys в меню слева. Узнать больше об установке Git вы можете, изучив<a>наши инструкции</a>.</p>
71
<h3>Дальнейшая работа</h3>
71
<h3>Дальнейшая работа</h3>
72
<p>Первичная настройка GitLab на этом завершена. Теперь можно приступать к работе с ветками проекта, добавлять новых пользователей и делать многие другие вещи (например, отправлять баг-репорты). Приведем основные полезные функции:</p>
72
<p>Первичная настройка GitLab на этом завершена. Теперь можно приступать к работе с ветками проекта, добавлять новых пользователей и делать многие другие вещи (например, отправлять баг-репорты). Приведем основные полезные функции:</p>
73
<ul><li>Для создания новой ветки перейдите в репозиторий, откройте уже знакомое по внешнему виду меню с плюсиком и выберите пункт New Branch. Те, кто пользуется git-клиентами, могут сделать то же самое командой git checkout или с помощью графического интерфейса</li>
73
<ul><li>Для создания новой ветки перейдите в репозиторий, откройте уже знакомое по внешнему виду меню с плюсиком и выберите пункт New Branch. Те, кто пользуется git-клиентами, могут сделать то же самое командой git checkout или с помощью графического интерфейса</li>
74
<li>Для объединения веток проекта в одну (этот процесс называется мерджинг или слияние) нажмите на кнопку Create merge request и заполните необходимые поля. Потребуется написать поясняющий комментарий, указать автора запроса, проверяющего и поставить теги, после чего подтвердить слияние</li>
74
<li>Для объединения веток проекта в одну (этот процесс называется мерджинг или слияние) нажмите на кнопку Create merge request и заполните необходимые поля. Потребуется написать поясняющий комментарий, указать автора запроса, проверяющего и поставить теги, после чего подтвердить слияние</li>
75
<li>Добавление новых пользователей осуществляется через левое меню. Выберите там Project information и далее Members. В открывшейся форме, помимо ника и электронной почты, укажите роль пользователя и дату, когда срок действия его прав истечет, и он будет исключен из проекта. Это время всегда можно продлить.</li>
75
<li>Добавление новых пользователей осуществляется через левое меню. Выберите там Project information и далее Members. В открывшейся форме, помимо ника и электронной почты, укажите роль пользователя и дату, когда срок действия его прав истечет, и он будет исключен из проекта. Это время всегда можно продлить.</li>
76
<li>Для оповещений коллег и пользователей о каких-либо проблемах - чаще всего это баги или ошибки, - выберите в левом меню пункт Issues. Далее по клику на кнопку New Issue, откроется форма, где нужно будет указать название и добавить описание проблемы, а также назначить ответственного - Assignee.</li>
76
<li>Для оповещений коллег и пользователей о каких-либо проблемах - чаще всего это баги или ошибки, - выберите в левом меню пункт Issues. Далее по клику на кнопку New Issue, откроется форма, где нужно будет указать название и добавить описание проблемы, а также назначить ответственного - Assignee.</li>
77
</ul>
77
</ul>