PS-Studio.info

Веб и веб-технологии

ABC 21.01.2020 в 15:35

Git - первое знакомство: регистрируемся на GitHub и учимся взаимодействию с сервисом.

Для того, чтобы нам связать наш локальный репозиторий с репозиторием на онлайн-сервисе GitHub, необходимо, прежде всего, зарегистрироваться на нём.
Переходим на оффициальный сайт GitHub и регистрируемся на нём (если вы этого ещё не делали). После того, как вы зарегистрировались, нажимаем кнопку New Repository (Новый репозиторий)



Имя репозитория вы придумываете сами (я назвал его test), при желании вы можете придумать ему описание (вносится в поле Description, я написал в нём My first repository)
Тип репозитория Public(публичный), он бесплатный, галочку рядом с фразой "Initialize this repository with a README" не ставьте, файл README мы уже создали ранее.
Жмём Create Repository (Создать репозиторий)



Репозиторий создан, и теперь мы можем добавить его в наш Git.

Генерирование и добавление SSH-ключей

С помощью так называемых SSH-ключей вы, имея учётную запись на GitHub, можете работать со своими проектами, используя консоль Git Bash.
SSH-ключи - это сгенерированная пара ключей, один из которых открытый(публичный), другой приватный. Публичный ключ добавляется в список SSH-ключей вашего аккаунта на GitHub, приватный добавляется в SSH-агент на вашем компьютере.
Таким образом, вы можете работать со своими проектами на GitHub, не проходя каждый раз авторизацию через логин и пароль, так как авторизацию осуществляет пара ключей, что значительно повышает безопасность.

Итак, перейдём непосредственно к SSH-ключам. Запустим консоль GItBush и проверим, нет ли у нас на компьютере уже каких-нибудь существующих ключей, для этого в консоли набираем и выполняем команду:

ls -al ~/.ssh

как вы сможете понять, есть какие-либо уже ключи или нет? всё очень просто: если в списке файлов вы обнаружите файлы подбного типа: id_rsa и id_rsa.pub, то это и есть уже существующие ключи. Мы в данном случае решим, что ключей у нас еще никаких нет, что и подтверждает мой результат выполнения команды в консоли:



так как ключей нет, то нам нужно их сгенерировать, делается это следующей командой:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

в двойных кавычках вы должны указать тот адрес электронной почты, который указали при регистрации на GitHub, запускаем команду.
На этом шаге Git Bash нам сообщил что идёт генерация ключа и просит указать то место, в котором вы хотите сохранить сгенерированные ключи.
Вы можете либо просто нажать Enter, и тогда ключи сохранятся в папке по умолчанию (у меня на Windows 10 это С:/Users/имя пользователя/.ssh/id_rsa), либо указать свой вариант, заменив им путь в скобках.



я просто нажал Enter, выбрав сохранение ключей в папку по умолчанию, далее вас попросят придумать пароль для ключа (также не обязательное действие) и повторно его подтвердить, я не стану этого делать и просто жму Enter:



Всё, созданные нами ключи сохранились в папке по умолчанию и об этом мы видим в окне Git Bash оповещение:

Your identification has been saved in /c/Users/msiGE62APACHE/.ssh/id_rsa.
Your public key has been saved in /c/Users/msiGE62APACHE/.ssh/id_rsa.pub.


Если я теперь просто войду в эту папку, то увижу, что да, действительно в ней появились два файла ключей:



Теперь нам последовательно нужно добавить наши ключи к SSH-агенту и к учётной записи на GitHub. Чтобы добавить ключи к SSH-агенту, прописываем в консоли Git Bash команду, запускающую его:

eval $(ssh-agent -s)

и затем добавляем в него ключи:

ssh-add ~/.ssh/id_rsa

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



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

clip < ~/.ssh/id_rsa.pub

Альтернативный вариант: просто открыть в текстовом редакторе файл ключа и скопировать всё его содержимое оттуда. Не суть. Мы скопировали в буфер обмена содержимое открытого ключа, теперь заходим в свой аккаунт на GitHub, щёлкаем по своему аватару и выбираем пункт Settings, в списке находим SSH and GPG keys, кликаем по этому пункту:



и теперь нажимаем New SSH key (новый ключ SSH)



в поле Title вы пишите название для своего ключа (я напишу Mykey), а в поле Key с помощью комбинации клавиш Shift + Insert вы вставляете содержимое своего открытого ключа, которое вас поджидало в буфере обмена)



и нажимаете кнопку Add SSH key (добавить ключ SSH), ваш публичный ключ добавлен!



Давайте проверим наше SSH-соединение, набираем команду в консоли Git Bash

ssh -T git@github.com

если всё отлично, в консоли вы увидите что-то типа этого:

Hi username! You've successfully authenticated, but GitHub does not provide shell access

вместо username в сообщение будет имя вашей учётной записи на GitHub.

Добавление файлов нашего локального проекта в репозиторий на GitHub

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

Для этого в консоли Git Bash выполняем команду вида:

git remote add origin https://github.com/username/myproject.git

где вместо https://github.com/username/myproject.git вы вставляете ссылку на свой удалённый репозиторий на GitHub, к примеру, в моём случае это:

git remote add origin git@github.com:AVStepanoff/test.git

Данная команда добавляет в наш Git удалённый репозиторий. А чтобы из локального репозитория отправить все файлы в репозиторий на GitHub, выполняем такую команду:

git push -u origin master

в итоге все файлы проекта отправлены в удалённый репозиторий:



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



тут же мы можем, нажав на ссылку "Наш первый коммит" или "Наш второй коммит", просмотреть, какие изменения были внесены, например, я нажму на ссылку "Наш второй коммит" и в открывшемся окне увижу, что именно изменилось в файле index.html (добавлено для класса .green font-size: 12px;):



Давайте в локальном проекте в папку css добавим еще один файл, например, файл стилей для шрифтов fonts.css и в панели Git Bash запросим статус файлов:



мы видим, что появился новый файл (он отмечен красным цветом), теперь нам нужно его добавить :

git add -A

и закоммитить

git commit -a -m "Наш третий коммит"



теперь нам нужно отправить эти изменения на наш удалённый репозиторий на GitHub

git push

в данном случае мы можем пользоваться вместо полной команды git push -u origin master сокращённой версией, так как связь между локальной веткой master и веткой master на GitHub уже установлена ранее.



заходим в наш репозиторий на GitHub и видим, что у нас появился новый файл fonts.css



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

Добавлять комментарии могут только зарегистрированные пользователи.