Как добавить ssh на gitlab

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

Затем давайте создадим файл test.txt:

This is test losst repo

И зафиксируем изменения:

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

Для отправки данных нужно ввести ваш логин и пароль на GitHub. Теперь, если вы обновите страницу репозитория на GitHub, то увидите там наш файл:

Важно отметить, что если удаленный репозиторий не пуст, то у вас не получиться так сделать. Вам нужно будет сначала скачать удаленный репозиторий, слить локальные изменения с ним, а потом уже отправить всё назад.

5. SSH ключи

Во время загрузки данных репозитория на GitLab нам нужно было ввести логин и пароль на сервере. Чтобы этого избежать можно использовать SSH ключи для авторизации. Сначала вам нужно создать такой ключ. Для этого откройте терминал и выполните:

Читайте также:  Как называется приложение где меняются лица местами

Введите путь к файлу, куда нужно сохранить ключ, а пароль оставьте пустым. Будут созданы два файла — открытый ключ с расширением .pub и закрытый. Вам нужен открытый. Откройте его в текстовом редакторе и скопируйте его содержимое в буфер обмена:

Далее возвращайтесь к интерфейсу 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

New feature with change

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? Напишите в комментариях!

Create ssh key

С помощью OpenSSH в Windows

Воспользоваться утилитой "ssh-keygen.exe" из поставки Git:

где USERNAME@DOMAIN.TLD необходимо заменить на ваш email, например v.pupkin@isimplelab.com
На запрос Passphrase нажать Enter. Задавать passphrase нет необходимости, в противном случае система будет требовать её при каждом обращении к удалённому репозиторию.

Полученные ключи разместить в %USERPROFILE%.ssh . Имена файлов с ключами должны быть:

  • id_rsa — приватный ключ
  • id_rsa.pub — публичный ключ

Создать файл %USERPROFILE%.sshconfig в котором прописать:

С помощью PuTTY в Windows

Скачать и установить PuTTY

Воспользоваться утилитой puttygen для генерации ключа. Комментарий к ключу (Key comment) — email пользователя, который указан в GitLab (USERNAME@DOMAIN.TLD).

Скопировать значение публичного ключа, для последующего указания его в настройках профайла Git Lab. Секретный ключ сохранить в удобную дирекорию — файл с данным ключом должен иметь расширение *.ppk.

PHP, Java, Delphi, 3D

Настройка SSH в GitLib

При вставке больших файлов в GitLib, используя http-доступ возникает ошибка 413 и как результат — файлы не передаются. В таком случае, лучше передавать информацию через ssh. Но, для этого, нужно несколько повозиться и настроить ssh-ключи. В данной статье описывается, как настроить ssh-доступ для GitLib.

После создания нового проекта стоит обратить внимание на 2 вещи:

  • на подсказку вверху о невозможности записывать изменения при отсутствии SSH ключей
  • на подсказки на странице о необходимых действиях — при создании нового проекта и при создании локального репозитория в существующем проекте.

Начнем с SSH ключей. Стоит различать 2 разновидности SSH пар ключей — которые использует Git и которые используют клиенты типа Source Tree, Tortoise Git. Проблема первой разновидности в том, что без лишних телодвижений допускается использование только одной пары ключей, в то время как каждый репозиторий требует уникальный ключ, вторых же можно наплодить неограниченное количество (на самом деле можно использовать более 1 пары ключей первого типа, но предлагаемые решения работают либо частично, либо не работают вообще).

Для начала, сделаем ключи для Git, для этого запустим Git Bash. Git подразумевает что в Windows среде ключи лежат по адресу

/ .ssh / id_rsa, где

— путь к домашней директории пользователя (например c: Users USERNAME), в папке которого есть каталог .ssh, в котором лежит пара ключей — id_rsa.pub и id_rsa (соответственно публичная часть и приватная).

Пришло время для генерирования ключей, возвращаемся к Git Bash и в консоль вводим следующее:

ssh-keygen -t rsa -C «your_email@example.com»»

Данная команда указывает Git Bash создать ключ с коментарием your_email@example.com (зачем он нужен, поймете чуть позже) в формате RSA. Внимательно вводим место сохранения ключа, в nix-like стиле с прямыми (а не обратными. ) слешами:

c: / Users / USERNAME / .ssh / id_rsa

и дважды вводим пароль для дополнительной защиты ключа (passphrase):

Переходим в личном кабинете в профиль, на вкладку с SSH ключами:

Профиль ssh gitlab

и добавляем содержимое посредством Copy/Paste файла id_rsa.pub (title заполнять не нужно — подставляется автоматически из коментария к ключу, таким образом ключи удобно отличать визуально, не сравнивая fingerprints.)

Читайте также:  Как подключить роутер к телефонному кабелю

GitLab Профиль ssh

Убеждаемся что файл принят системой:

Gitlab ssh key profile

HTTP доступ к репозиторию

Настала очередь собственно локального репозитория. Возвращаемся в Git Bash и поочередно вводим команды, которые услужливо подсказывает стартовая страница вашего проекта:

cd d: / projects / test — переходим в папку где будет лежать будущий проект

mkdir test-project — создаем новую папку для проекта

cd test-project — переходим в папку проекта

git init — инициализируем локальный репозиторий

touch README — создаем новый файл README

git add README — добавляем его к версионированию

git commit -m ‘first commit’ — делаем commit с коментарием о первом комите

git remote add origin http://gitlab.golovachcourses.com/Student/test-project.git — добавляем адрес удаленного репозитория в HTTP формате

git push -u origin master — отправляем изменения на сервер

Теперь если зайти в свой личный кабинет, то сначала увидим сообщение про создание новой ветки master в нашем тестовом проекте:

В файлах появился новый файл README:

но он пока пустой.

Галочка в зеленом кружочке сообщает что данная папка успешно подключена к VCS:

Итак, мы создали первый тестовый проект, подключили его к удаленному репозиторию по HTTP протоколу и сделали первый commit первого файла — README.

SSH доступ к репозиторию

Попробуем теперь изменить файл README и отправить изменения на сервер посредством SSH протокола через Tortoise Git. Для удаленного обновления вашего кода через Tortoise Git необходимо настроить и добавить к аккануте новыю пару SSH ключей, используя PuTTY Key Generator:

Полученную пару ключей необходимо сохранить (Save public key && Save private key) в том же месте где и предыдущие для дальнейшей настройки Git (пусть это будут соответственно test@gitlab.golovachcourses.com.pub и test@gitlab.golovachcourses.com.ppk).

Теперь добавим к первому сгенерированный ключ в вашем профиле:

В параметре Git -> Remote -> origin меняем ссылку на SSH вариант:

и указываем новый PuTTY ключ.

Теперь наш локальный репозиторий в качестве протокола будет использовать SSH. Пробуем как это работает, для чего в уже существующий пустой файл README вносим любые правки и сохраняем.

Обратите внимание на то, что VCS реагирует на изменение локальной копии, которое не синхронизировано с удаленным:

Есть две возможности провести синхронизацию:

  • отдельно по файлу (так как он у нас один, больше ничего в проекте нет)
  • либо по всей папке (что делают чаще всего)

В первом случае ПКМ на файле -> Git commit -> «master»…

Во втором случае ПКМ на папке -> Git Sync (этот вариант и рассмотрим как более общий):

делаем commit

вводим описание commit-а

локальный commit прошел успешно, делаем push

вводим пароль для ключа (passphrase, что вводили при создании, понадобится только в первый раз)

вводим наш логин

пароль

и наслаждаемся сообщением о том что произведен новый commit в основную ветку

и видим что в нашем удаленном файле, доступном в репозитории на сервере уже есть внесенные нами изменения

И теперь папка с «проектом» имеет одинаковую ревизию что локально что удаленно:

Git GUI клиенты

Помимо рассмотренного простейшего Tortoise Git (который на самом деле является не совсем GUI клиентом а скорее расширением оболочки), существует несколько других, для различных платформ: Git GUI. Из представленных заслуженное внимание привлекает Source Tree — добротный free инструмент от компании Atlassian.

«>

Adblock
detector