Github

Дело в том, что сам git делится на два компонента: локальный и серверный. Ранее мы с вами разбирались в устройстве локальной программы git, а теперь настало время связать наш локальный git с его облачным компонентом.

Существуют несколько провайдеров, которые предоставляют удобный интерфейс до серверного git. Одним из таких монополистов является Github.

Github - это централизованное, удаленное хранилище git репозиториев (проектов git). Как мы ранее отмечали, от системы контроля версий кода мы хотим получить возможность делиться нашими измнениями с другими разработчиками, а локальная программа нам позволяет это делать с трудом (только если вся наша команда чудесным образом работает за одним компьютером). При синхронизации с облачным хранилищем, каким является Github, каждый раш разработчик может отправлять свою историю изменений в облако, а также получать изменения, внесенные другими разработчиками.

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

Github является главным хранилищем исходного кода большинства open source программ. Open source - программы с открытым исходным кодом, в развитие которых может принимать каждый желающий.

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

SSH ключи

SSH-ключи - это уникальные идентификаторы для пользователей, которые обеспечивают безопасное и защищенное подключение к удаленным серверам.

Они используются для аутентификации пользователя при подключении к серверу по протоколу SSH и представляют собой пару ключей, публичный и приватный.

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

Когда вы пытаетесь подключиться к серверу, используя SSH, сервер спрашивает у вас ваш публичный ключ, а затем использует его для проверки вашей подлинности. Если сервер подтверждает, что вы являетесь владельцем приватного ключа, то он разрешает доступ к серверу.

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

Для того, чтобы привязать ваш SSH-ключ к Github необходимо его сначала создать. Команда универсальна для большинства операционных систем: ssh-keygen -t rsa. Данная команда создаст в вашем домашнем каталоге (/home/$USER/ для Linux, /Users/$USER/) подкаталог .ssh в котором вы сможете найти 2 файла: id_rsa и id_rsa.pub. Первый это наш приватный ключ, второй - публичный. Давайте выведем содерживое публичного ключа в консоль с помощью команды cat ~/.ssh/id_rsa.pub, скопируйте полученный текст, зайдите в настройки аакаунта на Github и вставьте ваш ключ в разделе SSH keys and GPG keys.

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

git remote add origin git@github.com:логин/название_удаленного_репозитория.git

Будьте внимательны, Github может предлагать вам URL на базе HTTPS или SSH. Вам необходим SSH URL.

После этого вы можете отправлять ваши локальные коммиты в удаленный с помощью команды git push

Задание

  • Создайте пару SSH ключей и добавьте ваш публичный ключ на Github

  • Так как никому не интересен ваш учебный проект, то давайте сделаем его приватным, а после создания репозитория в его настройках выдайте права для пользователя с email ruby_course@rambler.ru (меня)

  • привяжите ваш локальный репозиторий к удаленному.

  • Отправьте изменения в удаленный репозиторий.

  • Отправьте мне на email URL вашего удаленного git репозитория.

Last updated