HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>22 дек 2023</li>
2 <ul><li>22 дек 2023</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Руководство для начинающих и тех, кому не понравился GitHub.</p>
4 </ul><p>Руководство для начинающих и тех, кому не понравился GitHub.</p>
5 <p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5 <p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6 <p>Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.</p>
6 <p>Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.</p>
7 <p>GitLab - это сервис для хранения кода, управления версиями и совместной разработки программного обеспечения. В статье мы подробно разберём его основные термины, поймём, для чего он используется и потренируемся на своём компьютере.</p>
7 <p>GitLab - это сервис для хранения кода, управления версиями и совместной разработки программного обеспечения. В статье мы подробно разберём его основные термины, поймём, для чего он используется и потренируемся на своём компьютере.</p>
8 <p>Вы узнаете:</p>
8 <p>Вы узнаете:</p>
9 <ul><li><a>что такое GitLab</a>;</li>
9 <ul><li><a>что такое GitLab</a>;</li>
10 <li><a>зачем он нужен</a>;</li>
10 <li><a>зачем он нужен</a>;</li>
11 <li><a>как он помогает разработчику</a>;</li>
11 <li><a>как он помогает разработчику</a>;</li>
12 <li><a>чем GitLab отличается от GitHub</a>;</li>
12 <li><a>чем GitLab отличается от GitHub</a>;</li>
13 <li><a>как с ним работать на своём компьютере</a>.</li>
13 <li><a>как с ним работать на своём компьютере</a>.</li>
14 </ul><p><strong>GitLab</strong> - это веб-платформа для управления проектами и репозиториями программного кода, работа которой основана на популярной системе контроля версий Git. Чтобы понять, что она умеет и как именно помогает разработчикам, начнём с разбора основных понятий.</p>
14 </ul><p><strong>GitLab</strong> - это веб-платформа для управления проектами и репозиториями программного кода, работа которой основана на популярной системе контроля версий Git. Чтобы понять, что она умеет и как именно помогает разработчикам, начнём с разбора основных понятий.</p>
15 <p><strong>Система контроля версий Git</strong>используется для хранения промежуточных версий кода. Например, когда разработчик вносит в него изменения или добавляет новые части, то в Git он делает это с помощью коммитов.</p>
15 <p><strong>Система контроля версий Git</strong>используется для хранения промежуточных версий кода. Например, когда разработчик вносит в него изменения или добавляет новые части, то в Git он делает это с помощью коммитов.</p>
16 <p><strong>Коммит (commit)</strong> - это пакет изменений, хранящий информацию с добавленными, отредактированными или удалёнными файлами кода. Благодаря этому основной код проекта всегда можно вернуть в работоспособное состояние, восстановив его прошлые версии.</p>
16 <p><strong>Коммит (commit)</strong> - это пакет изменений, хранящий информацию с добавленными, отредактированными или удалёнными файлами кода. Благодаря этому основной код проекта всегда можно вернуть в работоспособное состояние, восстановив его прошлые версии.</p>
17 <p><strong>Репозиторий.</strong>Место, где хранится код и дополнительные файлы, необходимые для его работы или вёрстки окон приложения: иконки, картинки и так далее. Репозиторий похож на обычную папку на компьютере, только с дополнительными функциями. Например, у каждого файла, который он хранит, есть история изменений.</p>
17 <p><strong>Репозиторий.</strong>Место, где хранится код и дополнительные файлы, необходимые для его работы или вёрстки окон приложения: иконки, картинки и так далее. Репозиторий похож на обычную папку на компьютере, только с дополнительными функциями. Например, у каждого файла, который он хранит, есть история изменений.</p>
18 <p><strong>Ветки (branch).</strong>Это параллельные линии разработки, которые существуют независимо друг от друга. В Git-системах разработчики пишут код в отдельных ветках, избегая таким образом конфликтов между вносимыми изменениями.</p>
18 <p><strong>Ветки (branch).</strong>Это параллельные линии разработки, которые существуют независимо друг от друга. В Git-системах разработчики пишут код в отдельных ветках, избегая таким образом конфликтов между вносимыми изменениями.</p>
19 <p>Когда бэкендер, фронтендер или другой специалист завершает работу над кодом в своей ветке, он создаёт запрос на слияние (merge request) с главной веткой (master или main), где находится основной код программы, чтобы перенести туда свои изменения.</p>
19 <p>Когда бэкендер, фронтендер или другой специалист завершает работу над кодом в своей ветке, он создаёт запрос на слияние (merge request) с главной веткой (master или main), где находится основной код программы, чтобы перенести туда свои изменения.</p>
20 <p><strong>Слияние</strong> - это процесс объединения двух или более веток в одну.</p>
20 <p><strong>Слияние</strong> - это процесс объединения двух или более веток в одну.</p>
21 <p>Другие разработчики могут оценить изменения и прокомментировать их. После тестирования и утверждения со стороны сеньора или тимлида запрос на слияние выполняется. В GitLab можно настроить процесс разработки так, чтобы изменения автоматически вносились в основную ветку при выполнении определённых условий, например после успешного прохождения тестов.</p>
21 <p>Другие разработчики могут оценить изменения и прокомментировать их. После тестирования и утверждения со стороны сеньора или тимлида запрос на слияние выполняется. В GitLab можно настроить процесс разработки так, чтобы изменения автоматически вносились в основную ветку при выполнении определённых условий, например после успешного прохождения тестов.</p>
22 <p>GitLab помогает командам совместно разрабатывать программное обеспечение: планировать процессы, тестировать код, собирать проект и публиковать релизы.</p>
22 <p>GitLab помогает командам совместно разрабатывать программное обеспечение: планировать процессы, тестировать код, собирать проект и публиковать релизы.</p>
23 <p>В GitLab можно создавать задачи и группировать их в проекты, назначая ответственных и определяя дедлайны. Этим он похож на Jira, "Битрикс24" и другие приложения для менеджеров.</p>
23 <p>В GitLab можно создавать задачи и группировать их в проекты, назначая ответственных и определяя дедлайны. Этим он похож на Jira, "Битрикс24" и другие приложения для менеджеров.</p>
24 <p>С его помощью тимлид или старший разработчик могут проверить скорость, с которой команда выполняет задачи. Это полезно при планировании спринтов, когда требуется определить времязатраты на разработку той или иной фичи в приложении.</p>
24 <p>С его помощью тимлид или старший разработчик могут проверить скорость, с которой команда выполняет задачи. Это полезно при планировании спринтов, когда требуется определить времязатраты на разработку той или иной фичи в приложении.</p>
25 <p>Участники могут совместно работать над проектом в GitLab благодаря системе репозиториев и веток. Разработчики пишут код параллельно друг с другом, не переживая о совместимости новых или изменённых частей программы.</p>
25 <p>Участники могут совместно работать над проектом в GitLab благодаря системе репозиториев и веток. Разработчики пишут код параллельно друг с другом, не переживая о совместимости новых или изменённых частей программы.</p>
26 <p>После написания или обновления части кода разработчик подаёт запрос на слияние своей ветви с главным репозиторием проекта. Сеньор-разработчик или тимлид проверяют его и принимают запрос на слияние или же отправляют код на доработку, оставляя комментарии.</p>
26 <p>После написания или обновления части кода разработчик подаёт запрос на слияние своей ветви с главным репозиторием проекта. Сеньор-разработчик или тимлид проверяют его и принимают запрос на слияние или же отправляют код на доработку, оставляя комментарии.</p>
27 <em>Фото: cookie_studio / Freepik</em><p>GitLab автоматизирует процессы тестирования при внесении любого изменения в код. Например, когда в проект добавляют новую функцию или изменяют старую, GitLab отправляет её в центральный репозиторий, где автоматически запускается тестирование.</p>
27 <em>Фото: cookie_studio / Freepik</em><p>GitLab автоматизирует процессы тестирования при внесении любого изменения в код. Например, когда в проект добавляют новую функцию или изменяют старую, GitLab отправляет её в центральный репозиторий, где автоматически запускается тестирование.</p>
28 <p>Обычно этот процесс устроен следующим образом:</p>
28 <p>Обычно этот процесс устроен следующим образом:</p>
29 <ul><li>Система проверяет код на ошибки компиляции.</li>
29 <ul><li>Система проверяет код на ошибки компиляции.</li>
30 <li>После этого запускаются тесты, написанные разработчиками: модульные - для проверки отдельных частей кода, интеграционные, проверяющие работу нового кода со старым, и другие. Цель всех тестов - убедиться, что новые изменения не ломают существующую функциональность приложения.</li>
30 <li>После этого запускаются тесты, написанные разработчиками: модульные - для проверки отдельных частей кода, интеграционные, проверяющие работу нового кода со старым, и другие. Цель всех тестов - убедиться, что новые изменения не ломают существующую функциональность приложения.</li>
31 <li>Разработчик получает отчёт о пройденных тестах и при необходимости дорабатывает код. Когда все необходимые изменения будут внесены, GitLab интегрирует их в основной репозиторий проекта.</li>
31 <li>Разработчик получает отчёт о пройденных тестах и при необходимости дорабатывает код. Когда все необходимые изменения будут внесены, GitLab интегрирует их в основной репозиторий проекта.</li>
32 </ul><p>В GitLab есть репозитории контейнеров - автономных исполняемых пакетов, включающих в себя всё необходимое для работы приложения: библиотеки, файлы конфигураций и другое. Благодаря этому они запускаются в любой системе, вне зависимости от её окружения. Контейнеры создаются, развёртываются и управляются на платформе Docker.</p>
32 </ul><p>В GitLab есть репозитории контейнеров - автономных исполняемых пакетов, включающих в себя всё необходимое для работы приложения: библиотеки, файлы конфигураций и другое. Благодаря этому они запускаются в любой системе, вне зависимости от её окружения. Контейнеры создаются, развёртываются и управляются на платформе Docker.</p>
33 <p>В репозитории проекта можно хранить разные версии контейнеров для своего приложения и настроить их автоматическое обновление при изменении кода.</p>
33 <p>В репозитории проекта можно хранить разные версии контейнеров для своего приложения и настроить их автоматическое обновление при изменении кода.</p>
34 <p>Встроенные средства continuous integration (CI) и continuous deployment (CD) автоматизируют весь процесс от сборки кода до загрузки приложения или его новой версии в среду выполнения: на веб-сервер, мобильное устройство или другую платформу.</p>
34 <p>Встроенные средства continuous integration (CI) и continuous deployment (CD) автоматизируют весь процесс от сборки кода до загрузки приложения или его новой версии в среду выполнения: на веб-сервер, мобильное устройство или другую платформу.</p>
35 <p>Разработчик может определить тип окружения, например, выбрав продакшен-сервер, и автоматически развёртывать приложение в нём после тестирования.</p>
35 <p>Разработчик может определить тип окружения, например, выбрав продакшен-сервер, и автоматически развёртывать приложение в нём после тестирования.</p>
36 <p>В GitLab встроено несколько вариантов развёртывания "из коробки". Их выбирают в зависимости от задач:</p>
36 <p>В GitLab встроено несколько вариантов развёртывания "из коробки". Их выбирают в зависимости от задач:</p>
37 <ul><li><strong>Сине-зелёное развёртывание (</strong><strong>blue-green deployment</strong><strong>).</strong>Используется две среды: рабочая ("синяя") и тестовая ("зелёная") - для проверки работы приложения после внесения изменений. Когда новую версию кода проверили, она становится "зелёной".</li>
37 <ul><li><strong>Сине-зелёное развёртывание (</strong><strong>blue-green deployment</strong><strong>).</strong>Используется две среды: рабочая ("синяя") и тестовая ("зелёная") - для проверки работы приложения после внесения изменений. Когда новую версию кода проверили, она становится "зелёной".</li>
38 <li><strong>Канареечное развёртывание (</strong><strong>canary deployment</strong><strong>).</strong>Сначала новая версия приложения разворачивается для небольшой части пользователей. Так её тестируют в реальных условиях, ограниченной аудитории, а затем становится основной для всех.</li>
38 <li><strong>Канареечное развёртывание (</strong><strong>canary deployment</strong><strong>).</strong>Сначала новая версия приложения разворачивается для небольшой части пользователей. Так её тестируют в реальных условиях, ограниченной аудитории, а затем становится основной для всех.</li>
39 <li><strong>Плавное развёртывание (</strong><strong>rolling deployment</strong><strong>).</strong>Приложение заменяется новой версией без прерывания работы. Если у команды несколько серверов, она обновляет код на одном из них, затем на следующем и так далее.</li>
39 <li><strong>Плавное развёртывание (</strong><strong>rolling deployment</strong><strong>).</strong>Приложение заменяется новой версией без прерывания работы. Если у команды несколько серверов, она обновляет код на одном из них, затем на следующем и так далее.</li>
40 </ul><p>Эти стратегии снижают риски, возникающие при установке новых версий приложения. Например, связанные с его несовместимостью с конкретными пользовательскими устройствами. В случае сине-зелёного или канареечного развёртывания можно быстро откатиться к стабильной версии приложения.</p>
40 </ul><p>Эти стратегии снижают риски, возникающие при установке новых версий приложения. Например, связанные с его несовместимостью с конкретными пользовательскими устройствами. В случае сине-зелёного или канареечного развёртывания можно быстро откатиться к стабильной версии приложения.</p>
41 <p>И это не всё. В GitLab есть<a>готовые шаблоны CI/CD templates</a>. Это наборы инструкций или конфигураций для автоматизированной сборки, тестирования и развёртывания кода. Вместо того чтобы каждый раз создавать конфигурацию с нуля, разработчики могут использовать готовый шаблон и настроить его параметры для своего приложения.</p>
41 <p>И это не всё. В GitLab есть<a>готовые шаблоны CI/CD templates</a>. Это наборы инструкций или конфигураций для автоматизированной сборки, тестирования и развёртывания кода. Вместо того чтобы каждый раз создавать конфигурацию с нуля, разработчики могут использовать готовый шаблон и настроить его параметры для своего приложения.</p>
42 <p>GitLab собирает различные метрики процесса CI/CD и производительности приложения: время сборки, процент успешного прохождения тестов, количество выявленных ошибок и другие. Если их не хватает, то можно интегрировать сторонние инструменты мониторинга, например<a>Prometheus</a>или<a>Grafana</a>.</p>
42 <p>GitLab собирает различные метрики процесса CI/CD и производительности приложения: время сборки, процент успешного прохождения тестов, количество выявленных ошибок и другие. Если их не хватает, то можно интегрировать сторонние инструменты мониторинга, например<a>Prometheus</a>или<a>Grafana</a>.</p>
43 <p>GitLab не только предоставляет разработчикам хранилище кода со встроенной системой контроля версий Git, но и облегчает работу с помощью дополнительных возможностей.</p>
43 <p>GitLab не только предоставляет разработчикам хранилище кода со встроенной системой контроля версий Git, но и облегчает работу с помощью дополнительных возможностей.</p>
44 <p><strong>Гибкие настройки доступа к репозиториям с кодом.</strong>В проекте может работать несколько десятков специалистов. GitLab позволяет настроить их права доступа к репозиториям - определить, кто может читать, редактировать или загружать код. Например, пользователи с гостевым доступом к репозиторию могут просматривать его, но не вносить изменения. Это повышает безопасность проекта и облегчает управление разработкой.</p>
44 <p><strong>Гибкие настройки доступа к репозиториям с кодом.</strong>В проекте может работать несколько десятков специалистов. GitLab позволяет настроить их права доступа к репозиториям - определить, кто может читать, редактировать или загружать код. Например, пользователи с гостевым доступом к репозиторию могут просматривать его, но не вносить изменения. Это повышает безопасность проекта и облегчает управление разработкой.</p>
45 <p>Можно настроить доступ к отдельным веткам, а также создать группы пользователей, которые участвуют в нескольких проектах одновременно.</p>
45 <p>Можно настроить доступ к отдельным веткам, а также создать группы пользователей, которые участвуют в нескольких проектах одновременно.</p>
46 <p><strong>Инструменты управления CI/CD.</strong>Continuous integration (CI) и continuous deployment (CD) - подход в разработке программного обеспечения, который автоматизирует процессы сборки, тестирования и развёртывания приложения.</p>
46 <p><strong>Инструменты управления CI/CD.</strong>Continuous integration (CI) и continuous deployment (CD) - подход в разработке программного обеспечения, который автоматизирует процессы сборки, тестирования и развёртывания приложения.</p>
47 <p>Непрерывная интеграция (continuous integration, CI) - это практика, при которой код регулярно, чаще всего несколько раз в день, сливается в общий репозиторий с автоматизированной сборкой проекта. Благодаря этому можно быстро выявить баги в коде и проблемы совместимости с существующей кодовой базой.</p>
47 <p>Непрерывная интеграция (continuous integration, CI) - это практика, при которой код регулярно, чаще всего несколько раз в день, сливается в общий репозиторий с автоматизированной сборкой проекта. Благодаря этому можно быстро выявить баги в коде и проблемы совместимости с существующей кодовой базой.</p>
48 <p>Непрерывное развёртывание (continuous deployment, CD) - продолжение CI. Когда код успешно проходит тестирование после слияния, система автоматически разворачивает изменения в рабочей среде. Это означает, что новая версия приложения сразу становится доступной для заказчиков и пользователей.</p>
48 <p>Непрерывное развёртывание (continuous deployment, CD) - продолжение CI. Когда код успешно проходит тестирование после слияния, система автоматически разворачивает изменения в рабочей среде. Это означает, что новая версия приложения сразу становится доступной для заказчиков и пользователей.</p>
49 <p><strong>База знаний.</strong>В GitLab есть инструменты для создания вики-страниц с документацией проекта. Они поддерживают различные форматы: текст, изображения, видео и таблицы.</p>
49 <p><strong>База знаний.</strong>В GitLab есть инструменты для создания вики-страниц с документацией проекта. Они поддерживают различные форматы: текст, изображения, видео и таблицы.</p>
50 <p>Благодаря базе знаний о проекте новые сотрудники могут быстро понять, как настроить рабочую среду, какие версии библиотек использовать и так далее.</p>
50 <p>Благодаря базе знаний о проекте новые сотрудники могут быстро понять, как настроить рабочую среду, какие версии библиотек использовать и так далее.</p>
51 <p><strong>Проекты и задачи.</strong>В GitLab реализована система управления разработкой. В ней можно создавать задачи для членов команды, выбирая ответственных и устанавливая дедлайны, и описывать результаты работы.</p>
51 <p><strong>Проекты и задачи.</strong>В GitLab реализована система управления разработкой. В ней можно создавать задачи для членов команды, выбирая ответственных и устанавливая дедлайны, и описывать результаты работы.</p>
52 <p><strong>Интеграция с другими инструментами.</strong>GitLab поддерживает интеграцию с популярными платформами и сервисами, использующимися в разработке:<a>Docker</a>,<a>Kubernetes</a>, Jira, Slack и другими.</p>
52 <p><strong>Интеграция с другими инструментами.</strong>GitLab поддерживает интеграцию с популярными платформами и сервисами, использующимися в разработке:<a>Docker</a>,<a>Kubernetes</a>, Jira, Slack и другими.</p>
53 <p>В общем, GitLab - это централизованное место не только для хранения кода, но и для управления проектами, ведения базы знаний и автоматизации процессов разработки.</p>
53 <p>В общем, GitLab - это централизованное место не только для хранения кода, но и для управления проектами, ведения базы знаний и автоматизации процессов разработки.</p>
54 <p>GitLab и GitHub - это два популярных веб-сервиса для хостинга проектов с использованием системы контроля версий Git. Внешне они очень похожи, но между ними есть несколько различий:</p>
54 <p>GitLab и GitHub - это два популярных веб-сервиса для хостинга проектов с использованием системы контроля версий Git. Внешне они очень похожи, но между ними есть несколько различий:</p>
55 <ul><li>GitHub - это облачный сервис, принадлежащий Microsoft, на котором вы можете хранить свои проекты и управлять ими. В отличие от него, GitLab можно развернуть на своём собственном сервере.</li>
55 <ul><li>GitHub - это облачный сервис, принадлежащий Microsoft, на котором вы можете хранить свои проекты и управлять ими. В отличие от него, GitLab можно развернуть на своём собственном сервере.</li>
56 <li>В GitHub для работы с CI/CD придётся использовать дополнительный инструмент -<a>GitHub Actions</a>. GitLab - это полностью интегрированное решение со встроенными инструментами CI/CD.</li>
56 <li>В GitHub для работы с CI/CD придётся использовать дополнительный инструмент -<a>GitHub Actions</a>. GitLab - это полностью интегрированное решение со встроенными инструментами CI/CD.</li>
57 <li>В бесплатной версии GitHub в приватных репозиториях используется два уровня доступа: владелец (owner) и соавтор (collaborator). В GitLab таких ограничений нет. Количество пользователей с разным уровнем доступа не ограничено.</li>
57 <li>В бесплатной версии GitHub в приватных репозиториях используется два уровня доступа: владелец (owner) и соавтор (collaborator). В GitLab таких ограничений нет. Количество пользователей с разным уровнем доступа не ограничено.</li>
58 </ul><p>В целом и GitLab, и GitHub предоставляют одинаковый набор возможностей. Разница лишь в том, что в GitLab часть из них доступна через интеграции со сторонними приложениями, а в GitHub они есть по умолчанию.</p>
58 </ul><p>В целом и GitLab, и GitHub предоставляют одинаковый набор возможностей. Разница лишь в том, что в GitLab часть из них доступна через интеграции со сторонними приложениями, а в GitHub они есть по умолчанию.</p>
59 <p>Работа с GitLab проходит в несколько шагов: создание аккаунта и репозитория, добавление пользователей и веток, загрузка файлов проекта, внесение изменений в код и слияние веток.</p>
59 <p>Работа с GitLab проходит в несколько шагов: создание аккаунта и репозитория, добавление пользователей и веток, загрузка файлов проекта, внесение изменений в код и слияние веток.</p>
60 <p>Если у вас ещё нет учётной записи на GitLab, то начните с создания аккаунта на <a>официальном сайте</a>и заполните регистрационную форму:</p>
60 <p>Если у вас ещё нет учётной записи на GitLab, то начните с создания аккаунта на <a>официальном сайте</a>и заполните регистрационную форму:</p>
61 <ul><li>Username: уникальное имя вашего аккаунта.</li>
61 <ul><li>Username: уникальное имя вашего аккаунта.</li>
62 <li>Email: рабочая или личная электронная почта.</li>
62 <li>Email: рабочая или личная электронная почта.</li>
63 <li>Password: пароль с надёжной комбинацией.</li>
63 <li>Password: пароль с надёжной комбинацией.</li>
64 </ul><p>После регистрации подтвердите её по ссылке из письма, отправленного на электронную почту. Теперь ваш аккаунт в GitLab создан и готов к работе.</p>
64 </ul><p>После регистрации подтвердите её по ссылке из письма, отправленного на электронную почту. Теперь ваш аккаунт в GitLab создан и готов к работе.</p>
65 <p>На главной странице или в боковой панели нажмите на значок + и выберите пункт New project/repository:</p>
65 <p>На главной странице или в боковой панели нажмите на значок + и выберите пункт New project/repository:</p>
66 <em>Скриншот: GitLab / Skillbox Media</em><p>Создать проект в GitLab можно несколькими способами: с нуля, на основе шаблона, импортировать его из другого сервиса или компьютера или с помощью CI/CD. Мы начнём работать с пустого проекта, поэтому выберите Create blank project и заполните информацию:</p>
66 <em>Скриншот: GitLab / Skillbox Media</em><p>Создать проект в GitLab можно несколькими способами: с нуля, на основе шаблона, импортировать его из другого сервиса или компьютера или с помощью CI/CD. Мы начнём работать с пустого проекта, поэтому выберите Create blank project и заполните информацию:</p>
67 <ul><li>Project name: имя проекта.</li>
67 <ul><li>Project name: имя проекта.</li>
68 <li>Project slug определяется автоматически на основе Project name.</li>
68 <li>Project slug определяется автоматически на основе Project name.</li>
69 <li>Visibility Level: Public - для всех, Private - только для вас и выбранных соавторов проекта.</li>
69 <li>Visibility Level: Public - для всех, Private - только для вас и выбранных соавторов проекта.</li>
70 <li>Initialize repository with a README: автоматически создаст README в вашем репозитории. Это текстовый файл, который содержит информацию о проекте: описание его задач, принципов работы, инструкцию по установке и настройке.</li>
70 <li>Initialize repository with a README: автоматически создаст README в вашем репозитории. Это текстовый файл, который содержит информацию о проекте: описание его задач, принципов работы, инструкцию по установке и настройке.</li>
71 </ul><em>Скриншот: GitLab / Skillbox Media</em><p>После заполнения данных нажмите кнопку Create Project. Теперь репозиторий готов к работе:</p>
71 </ul><em>Скриншот: GitLab / Skillbox Media</em><p>После заполнения данных нажмите кнопку Create Project. Теперь репозиторий готов к работе:</p>
72 <em>Скриншот: GitLab / Skillbox Media</em><p>SSH-ключи используются для аутентификации вашего компьютера на удалённом сервере, в данном случае на сервере GitLab. Благодаря этому вы можете подтверждать свою личность без ввода пароля.</p>
72 <em>Скриншот: GitLab / Skillbox Media</em><p>SSH-ключи используются для аутентификации вашего компьютера на удалённом сервере, в данном случае на сервере GitLab. Благодаря этому вы можете подтверждать свою личность без ввода пароля.</p>
73 <p>Чтобы создать ключ, откройте терминал или командную строку и введите команду для генерации ключей ssh-keygen. Если вы хотите сгенерировать их в определённой папке, то введите путь до неё.</p>
73 <p>Чтобы создать ключ, откройте терминал или командную строку и введите команду для генерации ключей ssh-keygen. Если вы хотите сгенерировать их в определённой папке, то введите путь до неё.</p>
74 При генерации ключа можно указать пароль, но это необязательно<em>Скриншот: Skillbox Media</em><p>Теперь в указанной папке у вас появится два файла с ключами - приватный и открытый. Для создания ключей в GitLab нужен второй - файл с расширением .pub. Откройте его в текстовом редакторе и скопируйте содержимое в буфер обмена.</p>
74 При генерации ключа можно указать пароль, но это необязательно<em>Скриншот: Skillbox Media</em><p>Теперь в указанной папке у вас появится два файла с ключами - приватный и открытый. Для создания ключей в GitLab нужен второй - файл с расширением .pub. Откройте его в текстовом редакторе и скопируйте содержимое в буфер обмена.</p>
75 <p>Перейдите в свой репозиторий на сайте GitLab, нажмите на кнопку Add SSH key:</p>
75 <p>Перейдите в свой репозиторий на сайте GitLab, нажмите на кнопку Add SSH key:</p>
76 <em>Скриншот: GitLab / Skillbox Media</em><p>А затем на кнопку Add new key:</p>
76 <em>Скриншот: GitLab / Skillbox Media</em><p>А затем на кнопку Add new key:</p>
77 <em>Скриншот: GitLab / Skillbox Media</em><p>Вставьте скопированный ключ в поле Key и дайте ему осмысленное имя, например, совпадающее с именем репозитория.</p>
77 <em>Скриншот: GitLab / Skillbox Media</em><p>Вставьте скопированный ключ в поле Key и дайте ему осмысленное имя, например, совпадающее с именем репозитория.</p>
78 <p>Вы можете загрузить существующие файлы проекта в свой репозиторий или создать новые. Для этого нажмите на + и выберите New file или Upload file.</p>
78 <p>Вы можете загрузить существующие файлы проекта в свой репозиторий или создать новые. Для этого нажмите на + и выберите New file или Upload file.</p>
79 <em>Скриншот: GitLab / Skillbox Media</em><p>Теперь вы можете редактировать код непосредственно в веб-интерфейсе. Для этого нажмите кнопку Edit:</p>
79 <em>Скриншот: GitLab / Skillbox Media</em><p>Теперь вы можете редактировать код непосредственно в веб-интерфейсе. Для этого нажмите кнопку Edit:</p>
80 <em>Скриншот: GitLab / Skillbox Media</em><p>Репозиторий можно клонировать на свой компьютер и работать в удобном редакторе или IDE. Подробнее об этом напишем дальше.</p>
80 <em>Скриншот: GitLab / Skillbox Media</em><p>Репозиторий можно клонировать на свой компьютер и работать в удобном редакторе или IDE. Подробнее об этом напишем дальше.</p>
81 <p>Каждая ветка представляет собой отдельное направление работы. В них разработчики создают новые функции, исправляют ошибки, тестируют изменения и проводят эксперименты, которые не влияют на основной проект и другие ветки. После завершения работы в ветке производится её слияние с основной веткой.</p>
81 <p>Каждая ветка представляет собой отдельное направление работы. В них разработчики создают новые функции, исправляют ошибки, тестируют изменения и проводят эксперименты, которые не влияют на основной проект и другие ветки. После завершения работы в ветке производится её слияние с основной веткой.</p>
82 <p>По умолчанию в новом репозитории есть одна ветка - main. Обычно с кодом в main не работают напрямую, а вносят изменения посредством слияния с другими ветками.</p>
82 <p>По умолчанию в новом репозитории есть одна ветка - main. Обычно с кодом в main не работают напрямую, а вносят изменения посредством слияния с другими ветками.</p>
83 <p>Чтобы создать новую ветку нажмите на + и выберите пункт меню New branch.</p>
83 <p>Чтобы создать новую ветку нажмите на + и выберите пункт меню New branch.</p>
84 <em>Скриншот: GitLab / Skillbox Media</em><p>Новая ветка содержит копии всех файлов проекта. Теперь можно вносить изменения в код, добавлять новые фичи в ПО, исправлять ошибки, и это не будет влиять на основной код.</p>
84 <em>Скриншот: GitLab / Skillbox Media</em><p>Новая ветка содержит копии всех файлов проекта. Теперь можно вносить изменения в код, добавлять новые фичи в ПО, исправлять ошибки, и это не будет влиять на основной код.</p>
85 <p>Чтобы перенести новый код в основную ветку, нажмите на кнопку Commit changes внизу страницы.</p>
85 <p>Чтобы перенести новый код в основную ветку, нажмите на кнопку Commit changes внизу страницы.</p>
86 <em>Скриншот: GitLab / Skillbox Media</em><p>А затем нажмите на кнопку Create merge request, создав запрос на слияние.</p>
86 <em>Скриншот: GitLab / Skillbox Media</em><p>А затем нажмите на кнопку Create merge request, создав запрос на слияние.</p>
87 <em>Скриншот: GitLab / Skillbox Media</em><p>На открывшейся странице введите название слияния, опишите его, указав, что именно вы изменили, и выберите ответственных за проверку. Теперь нажмите на кнопку Create merge request внизу страницы.</p>
87 <em>Скриншот: GitLab / Skillbox Media</em><p>На открывшейся странице введите название слияния, опишите его, указав, что именно вы изменили, и выберите ответственных за проверку. Теперь нажмите на кнопку Create merge request внизу страницы.</p>
88 <em>Скриншот: GitLab / Skillbox Media</em><p>Чтобы принять изменения на следующей странице, нажмите кнопки Approve и Merge:</p>
88 <em>Скриншот: GitLab / Skillbox Media</em><p>Чтобы принять изменения на следующей странице, нажмите кнопки Approve и Merge:</p>
89 <em>Скриншот: GitLab / Skillbox Media</em><p>На практике согласовывать и производить слияние, скорее всего, будет кто-то другой, например ваш тимлид.</p>
89 <em>Скриншот: GitLab / Skillbox Media</em><p>На практике согласовывать и производить слияние, скорее всего, будет кто-то другой, например ваш тимлид.</p>
90 <p>Когда слияние веток будет выполнено, информация о нём появится в описании:</p>
90 <p>Когда слияние веток будет выполнено, информация о нём появится в описании:</p>
91 <em>Скриншот: GitLab / Skillbox Media</em><p>Вы можете добавлять к своему проекту участников с разными уровнями доступа. Для этого выберите на панели слева пункт Members.</p>
91 <em>Скриншот: GitLab / Skillbox Media</em><p>Вы можете добавлять к своему проекту участников с разными уровнями доступа. Для этого выберите на панели слева пункт Members.</p>
92 <em>Скриншот: GitLab / Skillbox Media</em><p>В новом окне нажмите Invite members, введите никнейм или адрес электронной почты пользователя, выберите для него роль и нажмите кнопку Invite.</p>
92 <em>Скриншот: GitLab / Skillbox Media</em><p>В новом окне нажмите Invite members, введите никнейм или адрес электронной почты пользователя, выберите для него роль и нажмите кнопку Invite.</p>
93 <em>Скриншот: GitLab / Skillbox Media</em><p>Большую часть времени вы будете писать код локально, в любимом редакторе или IDE, а не в панели GitLab. Для этого нужно будет клонировать репозиторий - после завершения работы его также можно будет слить с основным репозиторием.</p>
93 <em>Скриншот: GitLab / Skillbox Media</em><p>Большую часть времени вы будете писать код локально, в любимом редакторе или IDE, а не в панели GitLab. Для этого нужно будет клонировать репозиторий - после завершения работы его также можно будет слить с основным репозиторием.</p>
94 <p>Как работать локально:</p>
94 <p>Как работать локально:</p>
95 <ul><li>Скопируйте URL репозитория. На своём компьютере откройте командную строку или терминал и выполните команду git clone &lt;URL репозитория&gt; для загрузки репозитория на локальную машину.</li>
95 <ul><li>Скопируйте URL репозитория. На своём компьютере откройте командную строку или терминал и выполните команду git clone &lt;URL репозитория&gt; для загрузки репозитория на локальную машину.</li>
96 <li>В созданном клоне репозитория вносите изменения в файлы проекта или добавляйте новые.</li>
96 <li>В созданном клоне репозитория вносите изменения в файлы проекта или добавляйте новые.</li>
97 <li>После завершения работы с кодом откройте командную строку или терминал в папке вашего проекта. Выполните команду git add ., чтобы добавить все изменения в стейдж. Стейдж (staging area) в Git - это место, где собираются изменения перед коммитом. Если вы хотите добавить только конкретные файлы, используйте команду git add &lt;имя_файла&gt;.</li>
97 <li>После завершения работы с кодом откройте командную строку или терминал в папке вашего проекта. Выполните команду git add ., чтобы добавить все изменения в стейдж. Стейдж (staging area) в Git - это место, где собираются изменения перед коммитом. Если вы хотите добавить только конкретные файлы, используйте команду git add &lt;имя_файла&gt;.</li>
98 <li>Чтобы посмотреть, какие файлы находятся в стейдже и какие изменения готовы к коммиту, используйте команду git status.</li>
98 <li>Чтобы посмотреть, какие файлы находятся в стейдже и какие изменения готовы к коммиту, используйте команду git status.</li>
99 <li>Для создания коммита наберите команду git commit -m "Ваш комментарий к изменениям". В кавычках можете написать короткий комментарий, например: "Добавлены новые функции" или "Исправлены ошибки".</li>
99 <li>Для создания коммита наберите команду git commit -m "Ваш комментарий к изменениям". В кавычках можете написать короткий комментарий, например: "Добавлены новые функции" или "Исправлены ошибки".</li>
100 <li>Чтобы отправить коммит на сервер, используйте команду git push.</li>
100 <li>Чтобы отправить коммит на сервер, используйте команду git push.</li>
101 </ul><p>Удалить проект в GitLab может администратор проекта или пользователь с соответствующими правами доступа.</p>
101 </ul><p>Удалить проект в GitLab может администратор проекта или пользователь с соответствующими правами доступа.</p>
102 <p>Войдите в GitLab и перейдите в проект, который хотите удалить. Откройте раздел Settings и выберите General. Прокрутите страницу вниз до раздела Advanced и откройте его. Внизу вы увидите кнопку Delete project. Нажмите на неё и подтвердите, что вы действительно хотите удалить проект.</p>
102 <p>Войдите в GitLab и перейдите в проект, который хотите удалить. Откройте раздел Settings и выберите General. Прокрутите страницу вниз до раздела Advanced и откройте его. Внизу вы увидите кнопку Delete project. Нажмите на неё и подтвердите, что вы действительно хотите удалить проект.</p>
103 <em>Скриншот: GitLab / Skillbox Media</em><p>Всё. Проект безвозвратно удалён.</p>
103 <em>Скриншот: GitLab / Skillbox Media</em><p>Всё. Проект безвозвратно удалён.</p>
104 <p>Пробежимся по тому, что узнали сегодня:</p>
104 <p>Пробежимся по тому, что узнали сегодня:</p>
105 <ul><li>GitLab - удобный и полезный инструмент для команд, занимающихся разработкой программного обеспечения. Он позволяет совместно работать над кодом и сохранять его промежуточные версии, к которым можно вернуться при необходимости.</li>
105 <ul><li>GitLab - удобный и полезный инструмент для команд, занимающихся разработкой программного обеспечения. Он позволяет совместно работать над кодом и сохранять его промежуточные версии, к которым можно вернуться при необходимости.</li>
106 <li>Разработчики, которые используют GitLab, пишут код в отдельных ветвях или клонах репозитория на своих компьютерах. После дополнения, изменения или удаления кода они создают коммит, содержащий все изменения, которые будут внесены в основной репозиторий. Сеньор или тимлид проверяют их и принимают или отправляют на доработку.</li>
106 <li>Разработчики, которые используют GitLab, пишут код в отдельных ветвях или клонах репозитория на своих компьютерах. После дополнения, изменения или удаления кода они создают коммит, содержащий все изменения, которые будут внесены в основной репозиторий. Сеньор или тимлид проверяют их и принимают или отправляют на доработку.</li>
107 <li>GitLab включает в себя встроенные средства continuous integration (CI) и continuous deployment (CD), которые автоматизируют процессы тестирования, сборки приложения и развёртывания.</li>
107 <li>GitLab включает в себя встроенные средства continuous integration (CI) и continuous deployment (CD), которые автоматизируют процессы тестирования, сборки приложения и развёртывания.</li>
108 <li>GitLab отличается от GitHub встроенным инструментом для CI/CD, возможностью развёртывания сервиса на собственном сервере и отсутствием ограничений на число групп пользователей с разным уровнем доступа.</li>
108 <li>GitLab отличается от GitHub встроенным инструментом для CI/CD, возможностью развёртывания сервиса на собственном сервере и отсутствием ограничений на число групп пользователей с разным уровнем доступа.</li>
109 </ul><a>Научитесь: Профессия Специалист по кибербезопас­но­сти + ИИ Узнать больше</a>
109 </ul><a>Научитесь: Профессия Специалист по кибербезопас­но­сти + ИИ Узнать больше</a>