Bezdepbonusu7Программирование: статьи и ответы

GitHub с нуля

Как пользоваться GitHub: репозиторий, push и pull request

Редакция Bezdepbonusu78 мин чтения

Как пользоваться GitHub, если вы только начали учить программирование: регистрируетесь, подключаете компьютер по SSH, создаете репозиторий и отправляете код командой push. Дальше учитесь открывать pull request, на этом держится работа в любой команде.

Экран с исходным кодом проекта перед загрузкой на GitHub
Фото: Sai Kiran Anagani _imkiran, CC0, Wikimedia Commons
Содержание
  1. Git и GitHub
  2. Аккаунт и профиль
  3. SSH или токен
  4. Новый репозиторий
  5. Push и pull
  6. Pull request
  7. Другие функции
  8. Частые ошибки
  9. Частые вопросы

Что такое GitHub и чем он отличается от Git

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

Новичку GitHub нужен по трем причинам. Во-первых, это резервная копия: ноутбук сломался, а код на месте. Во-вторых, это портфолио: рекрутеры и тимлиды смотрят профиль кандидата на junior-позицию. В-третьих, почти все команды работают через pull request, и навык открыть PR и ответить на ревью проверяют уже на стажировке.

ПонятиеЧто это простыми словами
Репозиторий (repo)Папка проекта со всей историей изменений
CommitСнимок изменений с описанием
PushОтправка ваших коммитов на GitHub
PullЗагрузка чужих коммитов с GitHub к себе
BranchОтдельная линия разработки, например под одну задачу
ForkВаша копия чужого репозитория в вашем аккаунте
Pull request (PR)Предложение влить изменения из одной ветки в другую
IssueЗадача или сообщение об ошибке в проекте

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

Регистрация и настройка профиля

Регистрация на github.com занимает пару минут: почта, пароль, имя пользователя. Логин потом будет в адресах всех ваших репозиториев, поэтому выбирайте нейтральный, лучше латиницей и похожий на имя.

  1. Подтвердите почту из письма, иначе часть функций будет недоступна.
  2. Включите двухфакторную аутентификацию в Settings - Password and authentication. Для аккаунтов, которые публикуют код, GitHub ее требует.
  3. Заполните профиль: фото или аватар, пара строк о себе, город, ссылка на Telegram или резюме.
  4. Создайте репозиторий с именем, совпадающим с вашим логином. Его README.md GitHub покажет на главной странице профиля - это ваша витрина.

Почту, которую вы указали в git config user.email, добавьте в Settings - Emails. Тогда коммиты будут привязаны к профилю и появятся зеленые квадраты активности.

Как подключить компьютер к GitHub: SSH-ключ или токен

С августа 2021 года GitHub не принимает пароль от аккаунта при работе через Git в терминале. Подключиться можно двумя способами: по HTTPS с персональным токеном или по SSH-ключу. SSH настраивается один раз и дальше не требует ничего вводить, поэтому начнем с него.

Настройка SSH-ключа

  1. Создайте ключ командой ssh-keygen -t ed25519 -C "you@example.com". На Windows она работает в Git Bash и PowerShell.
  2. На вопросы можно нажимать Enter. Ключи появятся в папке ~/.ssh: приватный id_ed25519 и публичный id_ed25519.pub.
  3. Скопируйте содержимое публичного ключа: cat ~/.ssh/id_ed25519.pub.
  4. На GitHub откройте Settings - SSH and GPG keys - New SSH key, вставьте ключ и сохраните.
  5. Проверьте связь командой ниже.
ssh-keygen -t ed25519 -C "you@example.com"
cat ~/.ssh/id_ed25519.pub
ssh -T git@github.com

В ответ на последнюю команду придет приветствие с вашим логином. Приватный ключ никому не отправляйте и не кладите в репозитории.

Вариант с токеном

Если SSH заблокирован в сети (бывает в офисах и вузах), создайте токен в Settings - Developer settings - Personal access tokens. Fine-grained токен можно ограничить конкретными репозиториями и сроком действия. Когда Git попросит пароль при push, вставьте токен вместо пароля. На Windows Git Credential Manager обычно запоминает его сам, а иногда предлагает вход через браузер.

Как создать репозиторий на GitHub и загрузить проект

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

  1. На GitHub нажмите плюс в правом верхнем углу - New repository.
  2. Укажите имя, например todo-app, выберите Public или Private.
  3. Галочки README, .gitignore и License не ставьте, если код уже есть локально, иначе при первом push получите конфликт историй.
  4. Нажмите Create repository и скопируйте SSH-адрес вида git@github.com:login/todo-app.git.
  5. В папке проекта выполните команды ниже.
git init
git add .
git commit -m "Первая версия"
git branch -M main
git remote add origin git@github.com:login/todo-app.git
git push -u origin main

Обновите страницу репозитория, файлы на месте. Дальше цикл короткий: правите код, делаете git add, git commit и git push.

Если начинаете с нуля, создайте репозиторий на сайте сразу с README и .gitignore под ваш язык, а потом заберите его командой git clone git@github.com:login/todo-app.git.

Push и pull: как синхронизировать код

git push отправляет ваши коммиты на GitHub, git pull забирает чужие. Когда вы работаете один с двух компьютеров (дома и в офисе) или вдвоем над учебным проектом, привычка одна: начали работу - сделали pull, закончили - push.

git pull                  # забрать свежие изменения
# ... работаете ...
git add .
git commit -m "Добавил фильтр задач"
git push

Если push отклонен с сообщением про fetch first, значит, на сервере появились коммиты, которых у вас нет. Сделайте git pull, при конфликте поправьте файлы, закоммитьте и повторите push. Флаг --force без понимания последствий не используйте: он перезапишет историю на сервере.

Перед первым push проверьте, что в репозиторий не попали файлы .env, ключи API и пароли. По публичным репозиториям постоянно ходят боты, которые ищут секреты. Добавьте такие файлы в .gitignore до первого коммита, а если ключ все-таки утек, сразу отзовите его в сервисе, удаление файла из репозитория не поможет.

Как сделать pull request: пошагово

Pull request - это просьба влить ваши изменения из одной ветки в другую, обычно в main. На PR коллеги оставляют комментарии к строкам кода, запускаются тесты, и только после одобрения код попадает в основную ветку.

PR в своем или командном репозитории

  1. Создайте ветку под задачу: git switch -c feature/search.
  2. Внесите правки и закоммитьте их.
  3. Отправьте ветку: git push -u origin feature/search.
  4. На странице репозитория появится желтая плашка с кнопкой Compare & pull request. Нажмите ее.
  5. Проверьте направление: base - main, compare - ваша ветка. Напишите заголовок и описание: что сделано, зачем, как проверить.
  6. Нажмите Create pull request и назначьте ревьюера справа в блоке Reviewers.
  7. Получили замечания - исправьте код в той же ветке, сделайте commit и push. PR обновится сам.
  8. После одобрения нажмите Merge pull request и удалите ветку кнопкой Delete branch.

PR в чужой проект через fork

Прав на запись в чужой репозиторий у вас нет, поэтому сначала нажмите Fork: GitHub создаст копию проекта в вашем аккаунте. Клонируйте форк, сделайте ветку, правки и push в свой форк. Кнопка открытия PR предложит отправить изменения в исходный репозиторий. Перед этим прочитайте файл CONTRIBUTING.md, если он есть, и поищите задачи с меткой good first issue - их специально оставляют для новичков.

Чтобы форк не отставал от оригинала, нажимайте Sync fork на его странице или добавьте исходный репозиторий как второй remote: git remote add upstream <адрес> и забирайте изменения через git pull upstream main.

Issues, Actions и другие функции для новичка

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

  • Issues. Список задач и багов проекта. Можно ссылаться на задачу в коммите: строка Fixes #12 в описании PR закроет issue номер 12 после слияния.
  • GitHub Actions. Автоматический запуск тестов и линтеров на каждый push. Настраивается YAML-файлом в папке .github/workflows.
  • GitHub Pages. Бесплатный хостинг статического сайта прямо из репозитория. Подходит для портфолио на HTML, CSS и JavaScript.
  • README.md. Описание проекта в Markdown. Хороший README с целью проекта, скриншотом и инструкцией запуска заметно повышает шансы, что рекрутер досмотрит репозиторий.
  • GitHub CLI. Утилита gh позволяет создавать репозитории и PR из терминала: gh pr create.

Сравнение похожих площадок, если GitHub по каким-то причинам не подходит:

СервисОсобенностьКому подходит
GitHubКрупнейшее сообщество, open source, ActionsПортфолио, открытые проекты
GitLabВстроенный CI/CD, можно развернуть у себяКомпании с собственными серверами
GitflicРоссийский сервис с серверами в РФПроекты с требованием хранить код в России
BitbucketИнтеграция с JiraКоманды на продуктах Atlassian

Типичные ошибки новичков на GitHub

  • Permission denied (publickey). SSH-ключ не добавлен в аккаунт или Git использует другой ключ. Проверьте командой ssh -T git@github.com.
  • Support for password authentication was removed. Вы ввели пароль от аккаунта. Нужен токен или SSH.
  • refusing to merge unrelated histories. Создали репозиторий на сайте с README, а локально тоже есть история. Решение: git pull origin main --allow-unrelated-histories, затем push.
  • Коммиты не засчитываются в профиль. Почта в git config не совпадает с почтой в аккаунте.
  • Огромный репозиторий. В него попала папка node_modules или виртуальное окружение. Добавьте их в .gitignore. Как правильно создавать окружение для Python, описано в статье про venv.

Собрать портфолио на GitHub - хороший шаг на пути из статьи как стать программистом с нуля. Больше материалов о системах контроля версий - по тегу Git.

Частые вопросы

GitHub бесплатный?

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

Почему GitHub не принимает пароль при push?

С августа 2021 года GitHub отключил вход по паролю аккаунта для операций Git. Используйте SSH-ключ или персональный токен доступа, который вводится вместо пароля.

Чем fork отличается от clone?

Fork создает копию чужого репозитория в вашем аккаунте на GitHub. Clone скачивает репозиторий на компьютер. Для участия в чужом проекте обычно делают fork, а затем clone своего форка.

Можно ли пользоваться GitHub без командной строки?

Да, файлы можно загружать и редактировать прямо на сайте, а также через GitHub Desktop или встроенную панель Git в VS Code. Но базовые команды терминала все равно пригодятся на работе.

Что писать в описании pull request?

Коротко: что изменено, зачем, как проверить. Если PR закрывает задачу, добавьте строку Fixes и номер issue, тогда задача закроется автоматически после слияния.

Источники

  • Quickstart for pull requests, GitHub Docs, 2026
  • Generating a new SSH key and adding it to the ssh-agent, GitHub Docs, 2026
  • Token authentication requirements for Git operations, The GitHub Blog, 2020

Git

Похожие материалы

Версии программ и команды проверены на дату публикации. Если что-то изменилось, сверяйтесь с официальной документацией. Нашли неточность? Напишите на admin@bezdepbonusu7.win.