Если вы только начинаете работать с контролем версий, эти инструменты могут показаться запутанными. В статье собраны самые важные команды Git и простые сценарии взаимодействия с GitHub, чтобы вы могли быстро перейти от теории к практике. Материал ориентирован на реальные задачи: создание репозитория, работа с ветками, отправка изменений и восстановление состояния.
Коротко о разнице между Git и GitHub
Git — это система контроля версий, которая хранит историю изменений в локальном репозитории. GitHub — это веб-сервис для хранения репозиториев, совместной работы и организации пулреквестов.
Понимание роли каждого из них важно: Git оперирует вашими файлами и коммитами, GitHub предоставляет удалённый хостинг и инструменты для совместной работы. Ниже — небольшая таблица для наглядности.
| Git | GitHub |
|---|---|
| Локальное хранение истории | Удалённый хостинг репозиториев |
| Коммиты, ветки, слияния | Пулреквесты, Issues, веб-интерфейс |
Установка и базовая настройка
Установите Git через пакетный менеджер вашей системы или скачайте с официального сайта. После установки обязательно настройте имя и email — они попадут в каждый коммит.
Если планируете взаимодействовать с GitHub часто, сгенерируйте SSH-ключ и добавьте его в настройки аккаунта. Это избавит от ввода пароля при каждом push по HTTPS.
git config --global user.name "Ваше Имя" git config --global user.email "you@example.com" ssh-keygen -t ed25519 -C "you@example.com"
Создание и клонирование репозитория
Чтобы начать проект с нуля, выполните git init в каталоге с кодом. Команда создаст скрытую папку .git и подготовит рабочую копию к коммитам.
Если репозиторий уже находится на GitHub, клонируйте его командой git clone, указав URL или SSH-путь. Клонирование создаёт локальную копию с полной историей.
git init git clone git@github.com:username/repo.git
Основные команды для повседневной работы
Список команд, которые вы будете использовать каждый день: status, add, commit, log и push. Статус показывает текущее состояние, add подготавливает файлы к коммиту, commit сохраняет снимок, log показывает историю, push отправляет изменения на удалённый сервер.
Несложный сценарий выглядит так: правите код, проверяете статус, добавляете нужные файлы и фиксируете изменения. После проверки отправляете коммиты на GitHub.
git status git add file1 file2 git commit -m "Короткое описание изменений" git log --oneline git push origin main
Работа с ветками — простая модель
Ветки позволяют параллельно развивать фичи и исправлять ошибки, не мешая основной линии разработки. Основная ветка часто называется main или master, а новые фичи делают в отдельных ветках.
Создавать и переключаться между ветками можно двумя способами: через branch + checkout или через switch. После завершения работы ветку сливают в основную через merge или rebase в зависимости от принятой стратегии.
git branch feature/login git switch feature/login git merge feature/login git branch -d feature/login
Практика: создать ветку, сделать коммит и отправить на GitHub
Создайте ветку, внесите изменения и зафиксируйте их локально. Затем выполните push, указав название ветки — так на GitHub появится удалённая ветка, и её можно использовать для пулреквеста.
git switch -c feature/button # редактируем файлы git add . git commit -m "Добавлена кнопка" git push -u origin feature/button
Взаимодействие с удалённым репозиторием
Команды remote, fetch, pull и push управляют обменом с GitHub. git fetch загружает новейшие объекты без слияния, git pull делает fetch и сразу пытается слить изменения с вашей веткой.
При коллизиях выполняется merge conflict, который нужно разрешить вручную. После разрешения конфликтов зафиксируйте итоговый вариант и отправьте на сервер.
git remote add origin git@github.com:username/repo.git git fetch origin git pull origin main git push origin feature/xyz
Пулреквесты и код-ревью
Пулреквесты оформляются на GitHub: вы предлагаете изменения из ветки, и команда их обсуждает. Это ключевой этап для коллективной разработки и проверки качества кода.
На стороне GitHub можно просмотреть файлы, оставить комментарии и принять изменения. Локально подготовьте ветку аккуратно: маленькие логичные коммиты и понятные сообщения ускоряют ревью.
Восстановление и исправление ошибок
Git позволяет вернуться к предыдущим состояниям: для безопасного отката используйте git revert, он создаёт новый коммит с отменой изменений. git reset более радикален и меняет указатель ветки, поэтому требует осторожности.
Если нужно временно отложить незавершённую работу, применяйте git stash. Это удобнее, чем создавать черновую ветку для мелких правок.
git revert git reset --hard # аккуратно, удаляет изменения в рабочем каталоге git stash git stash pop
Полезные мелочи и советы из практики
Добавьте .gitignore в начале проекта, чтобы не коммитить временные файлы и большие бинарники. Я видел, как один лишний бинарник заполнил репозиторий и затруднил клонирование коллег.
Часто полезно использовать git log —graph —oneline —all для визуального представления ветвлений. У меня это спасало при разборе сложных историй коммитов и выборе стратегии слияния.
Краткая шпаргалка: команды на одном листе
| Команда | Назначение |
|---|---|
| git init | Создать локальный репозиторий |
| git clone | Скопировать удалённый репозиторий |
| git status | Посмотреть состояние файлов |
| git add | Подготовить файл к коммиту |
| git commit -m «msg» | Создать коммит |
| git push | Отправить коммиты на удалённый сервер |
| git pull | Загрузить и слить изменения с удалённого репозитория |
| git branch / git switch | Управление ветками |
| git merge / git rebase | Слияние веток |
Что делать дальше
После освоения базовых команд попробуйте настроить workflow для команды: определите политики именования веток, стратегию слияний и правила ревью. Это поможет избежать хаоса по мере роста проекта.
Изучите также GitHub Actions для автоматизации сборки и тестов. Автоматические проверки экономят время и повышают надёжность релизов.
Первые шаги с Git и GitHub дают чувство контроля над кодом. Практикуйтесь на небольших проектах, не бойтесь экспериментировать в отдельных ветках и аккуратно работать с откатом. Со временем привычные команды станут вторым инструментом в вашей разработческой повседневности.

