Как работать с несколькими GitHub-аккаунтами на своей локальной машине

Git для начинающих. Урок 2.
Создание и клонирование репозитория

Краткое содержание урока, основные инструкции для командной строки, полезные ссылки и советы.

Это каталог в файловой системе, где хранится информация о проекте:

  • файлы и папки проекта
  • история проекта
  • настройки проекта
  • служебная информация

Информация о репозитории хранится в скрытой папке .git в корне проекта.

Начало

Используйте SSH вместо HTTPS

Чтобы настроить на локальной машине разные аккаунты, мы будем использовать не обычное HTTPS-соединение, а SSH-ключи. Такой подход имеет свои достоинства и недостатки. GitHub периодически меняет свое мнение о том, какой вариант лучше, но вот вам цитата из документации GitHub, поясняющая, почему в данном случае нужно использовать именно SSH-ключи.

«Используя SSH-протокол, вы можете устанавливать соединение и аутентифицироваться на удаленных серверах и сервисах. При помощи SSH-ключей можно устанавливать соединение с GitHub, не указывая каждый раз свой логин и токен личного доступа».

Нам это идеально подходит. Мы ведь не хотим каждый раз заново проходить аутентификацию; напротив, мы хотим отправлять свои коммиты в репозитории так, будто мы вообще не переключались между аккаунтами. Но как это сделать?

Небольшое примечание. Если вы хотите подробнее узнать о разнице между HTTPS и SSH, она отлично описана в документации GitHub.

Разбираемся в структуре SSH на вашей локальной машине

Если говорить по-простому, все это будет работать благодаря созданию уникальных SSH-ключей, которые мы укажем в GitHub-аккаунтах. Github-у не придется каждый раз запрашивать логин с паролем, вместо этого он сможет верифицировать вас по SSH-ключу. Звучит отлично, правда?

Но где на вашей машине хранятся эти ключи?

Они хранятся в директории по адресу ~/.ssh . Там и будет все настраиваться. Приступим!

Примечание редакции Techrocks. У нас есть еще одна статья о SSH-ключах. Возможно, вам будет интересно.

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

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

Чтобы избежать использования рабочей учетной записи на клоне для личного репо, вы можете изменить клон с: git clone git@github.com:user/repo.git на git clone git@github-personal.com:user/repo.git

С этим все готово. Сообщите мне, если есть проблема или я что-то пропустил.

Сохраняем открытый ключ в профиле на GitHub

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

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

В открывшемся окне нужно выбрать пункт SSH and GPG keys:

Появится список SSH-ключей, которые мы регистрировали для нашей учётной записи ранее (их может быть несколько), и кнопка New SSH key для ввода нового ключа:

Для регистрации нового ключа нужно:

1. В поле Title ввести его название. Оно нужно только для информации о том, для какого компьютера вы добавили ключ, больше мы его нигде использовать не будем.

2. В поле Key вставить содержимое открытого ключа, который мы заранее сохранили в буфере обмена.

После нажатия кнопки Add SSH key GitHub может запросить ваш пароль для подтверждения регистрации нового ключа:

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

Отметим, что при первом обращении к GitHub с использованием SSH-ключей в консоли вы получите такое сообщение:

Пугаться этого не стоит, дело в том, что при SSH-соединении не только сервер удостоверяется в подлинности клиента, но и клиент проверяет, знаком ли ему данный сервер, заходил ли он на него ранее. Поэтому при первом подключении к серверу GitHub нужно ответить yes, при этом уникальная комбинация символов, идентифицирующая сервер (RSA key fingerprint), сохранится на нашем компьютере, а сервер GitHub будет добавлен в список известных хостов. При всех последующих обращениях к GitHub этот вопрос задаваться не будет.

Ваши почтовые адреса

GitHub использует ваш почтовый адрес для привязки ваших Git коммитов к вашей учётной записи. Если вы используете несколько почтовых адресов в своих коммитах и хотите, чтобы GitHub работал с ними корректно, то вам нужно будет добавить все используемые почтовые адреса в секцию под названием «Почтовые адреса» («Emails»), расположенную на вкладке «Администрирование» («Admin»).

Добавьте все ваши почтовые адреса

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

Отправка в удаленный репозиторий

Вернемся теперь к аккаунту на GitHub. Мы создали репозиторий example, и если зайти по адресу https://github.com/javakitt/example и нажать зеленую кнопку Clone, мы увидим, что GitHub предлагает два разных протокола для обмена: https и ssh.

Протоколы HTTPS и SSH

Это не обязательно для начала работы, но чтобы использовать протокол ssh (а не https), в настройках аккаунта надо вставить ssl-ключ. Закрытый ключ хранится у вас на компьютере, а открытый — в аккаунте, логин и пароль при обмене вводить не придется.

Но мы будем сейчас использовать протокол htpps. Тут придется при обмене с сервером вводить имя и пароль, но можно это сделать единожды, а потом брать из хранилища.

Обратите внимание, что при переключении между https и ssh (см. переключатель у кнопки Clone) меняются адреса репозиториев. Наш будет https://github.com/javakitt/example.git. Эти адреса годятся, разумеется, не только для клонирования репозитория, но и для отправки туда изменений.

Также учтите, что можно обмениваться с одним и тем же репозиторием как по протоколу https, так и по ssh. Например, на одном компьютере использовать ssl-ключ, а на другом ввести и запомнить логин-пароль для обмена. Просто псевдонимы будут назначены разным адресам.

Создадим псевдоним

Обычно создают псевдоним origin репозитория:

Мы создали псевдоним origin.

Отправим изменения

Теперь можно отправить изменения, пользуясь псевдонимом:

Здесь origin — псевдоним репозитория, а master — имя ветки. Так называется по умолчанию основная ветка в Git-репозитории. Как уже говорилось, при записи в репозиторий потребуются учетные данные — откроется окно браузера, в которое нужно ввести имя и пароль учетной записи GitHub. Впоследствии их можно запомнить, чтоб каждый раз не вводить. Запоминаются они так:

Эту команду надо ввести перед push, и тогда логин-пароль будет запрошен единожды.

Все, теперь можно убедиться, что по адресу https://github.com/javakitt/example лежат отправленные файлы.

Теперь любой человек может клонировать репозиторий по кнопке Clone, вносить изменения и отправлять их на GitHub (если мы ему дадим права).

Отправка на GitHub из командной строки

Теперь у вас есть собственный репозиторий GitHub, пора загружать в него файлы.

Какой бы метод вы ни использовали для его создания, после того, как он будет связан с вашим локальным компьютером, вам нужно будет сделать ещё несколько шагов. Следующие шаги предполагают, что вы выполнили всё до этого момента и использовали GitHub CLI для аутентификации вашей системы с помощью вашей учетной записи.

Первое, что вам нужно сделать, это сказать Git, кто вы. Вы не можете ничего зафиксировать на GitHub, не сделав этого заранее. Откройте терминал и введите эти две команды.

git config —global user.name «YourUserName»
git config —global user.email «YourEmailAddress»

Теперь, каждый раз, когда вы что-то фиксируете на GitHub со своего ПК, эта информация будет прикрепляться. В некоторых случаях, таких как личные репозитории, это не так важно, но система построена для обслуживания крупных организаций.

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

  1. Войдите git add . в терминале. Поскольку это первый запуск, мы предполагаем, что вы хотите отправить все файлы. Для отдельных файлов замените точку на имя файла.
  2. Подтвердите, что файлы доставлены через git status .
  3. Теперь вам нужно зафиксировать промежуточные файлы с помощью git commit -m «Insert a message here» . Сообщение является обязательным, но для первого раза достаточно «First commit».
  4. Чтобы начать, введите git push —set-upstream origin master и нажмите ввод.

Продолжительность отправки зависит от размера каталога, но как только это будет сделано, вы получите подтверждение и вернётесь обратно в пустое приглашение. Вы можете использовать git status в любое время, чтобы проверить, есть ли подготовленные файлы для фиксации. Также стоит отметить, что шаг 4 необходим только при первой фиксации. В будущем вы можете просто использовать git push для отправки всех зафиксированных файлов в репозиторий GitHub.

Это может показаться сложным, но как только вы настроите использование GitHub и потратите немного времени на его использование как в Интернете, так и на локальном компьютере, всё это довольно быстро стать вашей второй натурой.

Работа с репозиторием

Теперь на сайте github.com создадим новый репозиторий, если это новый проект.
Теперь перейдём в папку с проектом на локальной машине и дадим команду:

Покажу на примере Windows.

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

В этой процедуре предполагается, что вы уже создали хранилище на GitHub или имеете существующее хранилище, принадлежащее кому-то, кому вы хотели бы внести свой вклад.

Клонирование репозитория с помощью командной строки

На GitHub перейдите на главную страницу репозитория.

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

Под именем хранилища нажмите Клонировать или загрузить .

Клонировать или скачать кнопку

Чтобы клонировать репозиторий с использованием HTTPS, в разделе «Клонировать с HTTPS» нажмите . Чтобы клонировать репозиторий с использованием ключа SSH, включая сертификат, выданный центром сертификации SSH вашей организации, нажмите « Использовать SSH» , затем нажмите .

Кнопка клонирования URL

Откройте Git Bash. TerminalTerminal

Измените текущий рабочий каталог на место, где вы хотите сделать клонированный каталог.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector