HTML Diff
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&amp;promo_position=article-body&amp;promo_type=link&amp;promo_start=041024</a>)</p>
25 <p>Как правильно составлять описания коммитов и [почему это важно] (<a>https://ru.hexlet.io/blog/posts/git-commit-message?promo_name=blog&amp;promo_position=article-body&amp;promo_type=link&amp;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>