GitLab - это онлайн сервис для работы с git репозиториями, у которого есть Open Source версия, которую можно установить и развернуть на своем сервере. Разработчики позиционируют свой сервис как альтернативу GitHub и с этой задачей он полностью справляется. Здесь есть все то же самое, что и на GitHub, плюс бесплатные неограниченные частные репозитории, создание команд, редактирование кода прямо в браузере и многое другое.
В этой статье мы поговорим о том, как пользоваться GitLab для разработки своих проектов. Как создавать репозитории и взаимодействовать с ними. Если вам нужна информация по Git, то лучше смотрите статью как пользоваться git.
Содержание статьи
Как пользоваться GitLab
1. Создание аккаунта
Зарегистрироваться на GitLab очень просто. Откройте главную страницу GitLab найдите в правой части экрана форму входа и перейдите на вкладку Register. Здесь вам нужно ввести ваше имя, логин, адрес электронной почты, согласится с условиями использования и нажать кнопку Register:
После этого вам на почту придет сообщение со ссылкой для подтверждения аккаунта, перейдите по ней:
Теперь ваш аккаунт подтвержден и вы можете в нём авторизоваться:
После ввода логина и пароля вы попадете на главную страницу профиля. Сейчас здесь страница приветствия, но позже тут будет список ваших репозиториев:
2. Создание репозитория
Чтобы добавить проект GitLab кликните по значку + по центру верхней панели и выберите New Project:
Здесь вам нужно ввести имя репозитория, его описание, а также выбрать уровень доступа:
- Private - доступен только вам;
- Internal - доступен всем зарегистрированным пользователям;
- Public - доступен абсолютно всем.
Ещё вы можете установить галочку напротив Инициализировать репозиторий файлом README, но если вы хотите залить сюда файлы из уже существующего репозитория, делать этого не следует:
После нажатия на кнопку Create repo вы попадаете на страницу репозитория. Здесь GitLab уже предлагает первоначальный набор действий, чтобы проиниализировать ваш репозиторий. Например, вы можете создать здесь файлы или загрузить сюда файлы из вашего компьютера.
4. Загрузка файлов проекта
Давайте создадим новый локальный репозиторий на компьютере и загрузим его содержимое на GitLab. Для этого создайте папку репозитория, например, test-repo и инициализируйте в ней новый репозиторий командой git:
mkdir test-repo && cd test-repo
git init
Затем давайте создадим файл test.txt:
vi test.txt
И зафиксируем изменения:
git add test.txt
git commit -m "Inital commit"
Дальше нам нужно добавить наш удаленный репозиторий с GitLab к нашему локальному. Для этого выполните:
git remote add origin https://gitlab.com/losst/test-repo.git
Затем отправляем изменения в удаленный репозиторий:
git push origin master
Для отправки данных нужно ввести ваш логин и пароль на GitLab. Теперь, если вы обновите страницу репозитория на GitLab, то увидите там наш файл:
Важно отметить, что если удаленный репозиторий не пуст, то у вас не получиться так сделать. Вам нужно будет сначала скачать удаленный репозиторий, слить локальные изменения с ним, а потом уже отправить всё назад.
5. SSH ключи
Во время загрузки данных репозитория на GitLab нам нужно было ввести логин и пароль на сервере. Чтобы этого избежать можно использовать SSH ключи для авторизации. Сначала вам нужно создать такой ключ. Для этого откройте терминал и выполните:
ssh-keygen
Введите путь к файлу, куда нужно сохранить ключ, а пароль оставьте пустым. Будут созданы два файла - открытый ключ с расширением .pub и закрытый. Вам нужен открытый. Откройте его в текстовом редакторе и скопируйте его содержимое в буфер обмена:
vi /home/sergiy/.ssh/id-gitlab
Далее возвращайтесь к интерфейсу GitLab кликните по иконке профиля и выберите Settings:
Здесь на левой панели найдите пункт SSH Keys. В этом окне найдите поле Key и вставьте туда скопированный ключ. Далее сохраните изменения. Теперь ваш ключ добавлен:
Далее вернитесь в ваш репозиторий, найдите в правом верхнем углу кнопку Clone и кликните по ней. Нас интересует адрес Clone with SSH:
Возвращаемся к нашему локальному репозиторию, удаляем адрес https и добавляем ssh:
git remote remove origin
git remote add origin git@gitlab.com:losst/test-repo.git
Настройка ssh GitLab завершена. Теперь все действия будут выполняться по SSH и у вас не будет необходимости вводить логин и пароль.
6. Ветки репозитория
Разберем использование gitlab для работы с ветками. По умолчанию у репозитория есть только одна ветка - это master. Но для реализации дополнительных функций разработку можно выносить в отдельные ветки. В интерфейсе GitLab ветки отображаются слева. Здесь можно выбрать нужную ветку:
Создать новую ветку можно кликнув по значку плюс и выбрав New branch. Но это не обязательно, так как если вы создадите ветку в git и зальете изменения в репозиторий, то ветка появится там автоматически.
Чтобы изменить ветку по умолчанию откройте Settings -> Repository, а потом просто выберите нужную ветку в разделе Default branch:
6. Слияние веток
Поскольку у нас есть ветки и в них разрабатывается функциональность может возникнуть необходимость перенести её из одной ветки в другую. Для этого используются запросы слияния (Merge request gitlab). Давайте добавим ветку new-feature, а в ней создадим файл new-feature с текстом:
git checkout -b new-feature
vi new-feature.txt
git add new-feature.txt
git commit -m "add feature"
git push --set-upstream origin new-feature
Теперь, когда мы перейдем в новую ветку через интерфейс GitLab появится кнопка Create merge request. Нажмите на неё:
Здесь нужно написать описание Merge Request, который вы создаете, выбрать ветку источник и ветку цель. Также можно выбрать пользователя, которому будет оправлено уведомление о созданном запросе:
Далее запрос на слияние нужно одобрить. Вы можете посмотреть изменения нажав кнопку Open IDE или через терминал:
Далее просто нажмите кнопку Merge, если хотите слить ветки. Файлы ветки источника заменят файлы в ветке преемника, поэтому будьте осторожны, чтобы не потерять важные данные.
8. Добавление пользователей
Несмотря на то, что репозитории приватные, возможна работа с gitlab командой. Вы можете добавить к ним неограниченное количество разработчиков. Для этого откройте пункт Settings -> Members. Здесь в поле Select members to invite введите никнеймы или адреса электронной почты пользователей, которых надо пригласить, а в поле Choose a role permission выберите их уровень доступа:
Затем нажмите кнопку Add to project.
9. Удаление проекта
Чтобы удалить проект с Gitlab надо открыть Settings -> General -> Advanced и выбрать Remove Project в самом низу страницы:
После нажатия на кнопку вам нужно будет ввести имя проекта, после чего он будет удален:
Выводы
В этой статье мы кратко разобрали как пользоваться GitLab для разработки программного обеспечения. Это далеко не все возможности GitLab, которые заслуживают внимания, там ещё есть релизы, сообщения об ошибках, инструменты автоматизации и тестирования, удобный редактор кода и многое другое. В общем это полноценная альтернатива для GitHub если тот сервис больше вам не нравится. А что вы предпочитаете, GitHub или GitLab? Напишите в комментариях!
нет.
А чего нет?
Он, наверное, хотел сказать, что побольше, чем в GitHub.
Вообще, после приобретения GitHub фирмой мелкомягких, к этому ресурсу стали относиться, как я понял, более осторожно. И в этом плане GitLub стал более достойной заменой и с бОльшим функционалом, чем GitHub.
Возможности и удобства там, действительно, поинтереснее.
Например, разработчики открытой ERP системы https://flectrahq.com/ полностью ведут проект на GitLub
GitLab
п.4 отправка данных в репозиторий:
"Для отправки данных нужно ввести ваш логин и пароль на GitHub. Теперь, если вы обновите страницу репозитория на GitHub, то увидите там наш файл:"
Это описка или речь действимтельно идет о github'е?
В разделе 5 "SSH КЛЮЧИ", по моему пропущен момент с инициализацией созданного ключа в локальном репозитории. Ибо, согласно этой инструкции, у меня в результате выбивает ошибку:
"git@gitlab.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists."
а мне кажется вот тут есть кое что общее с этой статьей. https://otus.ru/nest/post/864/
Ну так там и ссылка на эту как на источник проставлена 🙂
узнав об этом https://www.cnews.ru/news/top/2019-11-05_gitlab_vvel_otbor_sotrudnikov я не думаю что у сеня появится желание работать с этим сервисом, если я для ниг враг то пусть хохлы душатся сами от своей ненависти
Чтобы все было работоспособно:
При возникновении ошибки при пуше через SSH - fatal: Could not read from remote repository.
Надо сделать так - ssh-add ~/.ssh/id_gitlab
Далее может всплыть - Could not open a connection to your authentication agent.
Решение - eval `ssh-agent -s`
Не хватает повествования о том, как дать ссылку на свой проект.
vim newFile.txt - опечатка в 4 разделе
Уважаемые авторы статьи , а где найти инфо что и как можно делать что-либо не разработчику а скажем например менеджеру проекта , что-то добавить какие -то дополнительные формы или комменты , по тематике проекта конечно если меня добавили как члена команда например.