GitHub объяснил SSH, токены и конфликты git

GitHub опубликовал выпуск серии «GitHub for Beginners», в котором отвечает на частые вопросы начинающих разработчиков и показывает, как настроить работу с платформой, управлять доступом и разбираться с базовыми сценариями в git.

Отдельный блок выпуска посвящён настройке SSH-ключей. Объясняется, что SSH-ключ — это пара файлов на компьютере: закрытый и открытый ключ. Закрытый ключ хранится локально и не должен передаваться другим, а открытый добавляется в GitHub. При работе с репозиторием git сверяет открытый ключ, сохранённый в GitHub, с закрытым ключом на машине пользователя, чтобы подтвердить его личность.

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

Далее автор объясняет, что такое персональные токены доступа (PAT, Personal Access Token). Это специальные учётные данные для инструментов, которым нужна аутентификация в GitHub, например для командной строки или GitHub API. Пользователь задаёт права для токена и может в любой момент отозвать его.

Описаны два вида токенов: fine-grained и classic. Показано, как создать каждый вид токена. После этого при запросе пароля в терминале вместо пароля учётной записи можно использовать такой токен.

Отдельный раздел посвящён merge-конфликтам. Конфликт возникает, когда два набора изменений затрагивают одну и ту же часть файла, и git не может автоматически решить, какая версия должна остаться. В материале демонстрируется способ разрешения конфликта через веб-интерфейс GitHub и обновление pull request после слияния версий.

Затем разбирается разница между merge и rebase. При слиянии создаётся новый коммит, который объединяет истории веток и сохраняет все шаги разработки. Merge подходит, когда важно сохранить полный ход работы, например при добавлении функциональности из feature-ветки в основную ветку.

Rebase, наоборот, переписывает историю: переносит коммиты ветки поверх другой ветки, что даёт линейную историю. Этот подход полезен, когда нужно обновить feature-ветку актуальными изменениями из основной ветки и сохранить более чистую линию коммитов.

В выпуске также показано, как отменить коммит. Если коммит уже отправлен в удалённую ветку, его можно отменить через интерфейс GitHub. Если изменения ещё локальные, предлагаются команды git для удаления коммита с сохранением изменений в «staged» состоянии или, при необходимости, для полного сброса рабочей директории с риском потери работы.

Ещё один важный сценарий — форк репозитория. Форк создаёт копию проекта в аккаунте пользователя, что позволяет изучать код и предлагать изменения без влияния на исходный репозиторий. Объясняется, как создать форк и как затем подтягивать обновления из «upstream»-репозитория, чтобы форк не устаревал, в том числе через GitHub и командную строку.

При рассмотрении pull request GitHub даёт рекомендации по их ревью: это место, где делятся кодом и обсуждают изменения. Приводятся три практических совета по проверке pull request и объясняется, как использовать кнопку «Submit review» для одобрения, запроса доработок или оставления комментариев.

Отдельно показано, как в ревью может помочь Copilot code review. Для его использования администратор организации должен включить Copilot для репозитория или пользователя. После включения он автоматически появляется в pull request без дополнительной установки. Copilot оставляет только комментарии и не засчитывается как формальное одобрение, то есть не влияет на требования по обязательным approvals и не блокирует слияние.

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

Автор выпуска — Кедаша, Developer Advocate в GitHub. Она делится опытом работы в индустрии, помогает разработчикам осваивать инструменты GitHub и приглашает зрителей к другим выпускам серии GitHub for Beginners на YouTube.

Источник: материалы GitHub for Beginners и обучающие ресурсы GitHub.

Читать новости ИИ и технологий в Telegram.


Оцените статью
Gimal-Ai