Установка и настройка Git
В первой главе раздела вы познакомились с идеей Git и с GitHub Desktop. Здесь — установка самого Git, настройка окружения, разница между консолью и графическими клиентами и пошаговые сценарии — клонирование, новый репозиторий, коммит, отправка на GitHub.
Следующий шаг после настройки — ежедневные команды в "Как работать с Git". Держать под рукой можно 12 команд — init, add, commit, push, ветки и слияние. Готовые сценарии с разбором каждой строки — лабораторная шпаргалка.
Git, хостинг и клиенты — не одно и то же
| Понятие | Что это | Примеры |
|---|---|---|
| Git | Программа контроля версий на вашем ПК. Хранит историю в папке .git | Устанавливается с git-scm.com |
| Git-хостинг | Сайт с удалёнными репозиториями | GitHub, GitLab, Bitbucket |
| Git-клиент | Оболочка: рисует кнопки и вызывает Git за вас | GitHub Desktop, Fork, терминал + git |
GitHub Desktop — клиент и удобный вход в GitHub. Это не замена установки Git, если вы хотите пользоваться командой git в PowerShell, VS Code или CI на своей машине.
Fork в этой статье — два разных смысла:
- Fork — отдельное desktop-приложение (клиент), см. ниже.
- Fork репозитория на GitHub — ваша копия чужого проекта для pull request; тема ветвления и слияния.
Командная строка и графический клиент
Одна и та же история коммитов. Меняется только способ отдать команды движку Git.
Терминал (git …) | Графический клиент | |
|---|---|---|
| Как выглядит | Текстовые команды | Кнопки, списки файлов, граф веток |
| Кому удобно | Скрипты, серверы, курсы, CI локально | Быстрый старт, обзор изменений глазами |
| Что нужно на ПК | Git в PATH (см. ниже) | Установленный клиент; часто отдельно нужен Git (зависит от программы) |
| Под капотом | Прямой вызов git | Тот же git, часто из встроенной копии |
Для курса достаточно связки GitHub Desktop + терминал после правильной установки Git. Остальные клиенты ниже — обзор на выбор.
Почему в терминале "git" может не работать
После установки только GitHub Desktop в PowerShell или cmd часто бывает так:
'git' is not recognized as an internal or external command
Причина: система ищет программу git.exe в каталогах из переменной окружения PATH. GitHub Desktop PATH не расширяет — он запускает свою встроенную копию Git только внутри приложения.
Варианты:
- Рекомендуется — поставить Git for Windows и на шаге установки включить доступ из командной строки (см. пошаговую установку).
- Вручную — добавить в PATH папку с
git.exe, если Git уже есть (например, после Git for Windows или встроенный Git из другого клиента). См. добавление PATH вручную.
Проверка в новом окне терминала (старое не подхватывает PATH до перезапуска):
git --version
Ожидаемый ответ похож на git version 2.47.0.windows.1. Пустой вывод или ошибка — Git в PATH нет.
Установщик Git for Windows ставит Git Bash — там git обычно уже работает. В PowerShell и cmd команда появится только если при установке выбрали пункт про PATH или добавили путь вручную. Unix-утилиты (grep, ls) на Windows без Git Bash можно также поставить через Microsoft Coreutils (Preview, winget install Microsoft.Coreutils) — см. grep на Windows.
Установка Git for Windows
Установка программ обычно выглядит так (Git for Windows — тот же тип мастера):
Play ITЗагрузка интерактивного демо…
- Скачайте установщик: git-scm.com/download/win.
- Запустите
.exeот имени обычного пользователя (админ не обязателен). - На шаге Adjusting your PATH environment выберите один из вариантов:
- Git from the command line and also from 3rd-party software —
gitдоступен в cmd, PowerShell и IDE (рекомендуется для обучения); - Git Bash only — только в Git Bash, в PowerShell команды не будет;
- Use Git and optional Unix tools from the Command Prompt — расширенный PATH с Unix-утилитами (осторожно: может пересечься с другими программами).
- Git from the command line and also from 3rd-party software —
- Остальные шаги мастера можно оставить по умолчанию (редактор, окончания строк
LF/CRLF— для курса не критично на старте). - Завершите установку и закройте все открытые терминалы, затем откройте новый PowerShell.
Проверка:
git --version
where.exe git
where.exe git покажет путь к git.exe, например C:\Program Files\Git\cmd\git.exe.
macOS и Linux
# macOS (Homebrew)
brew install git
# Debian / Ubuntu
sudo apt update && sudo apt install git
Проверка: git --version. На macOS иногда стоит старая системная версия — для курса лучше версия из Homebrew или с git-scm.com.
Добавить Git в PATH вручную (Windows)
Если Git установлен, но терминал его не видит:
- Найдите
git.exe— типичные пути:C:\Program Files\Git\cmd\C:\Program Files (x86)\Git\cmd\
- Параметры Windows → Система → О системе → Дополнительные параметры системы → Переменные среды.
- В Переменные среды пользователя (или системные, если нужно всем) выберите Path → Изменить → Создать → вставьте путь к папке
cmd(где лежитgit.exe), не к корнюGit. - ОК во всех окнах, перезапустите терминал и VS Code.
Desktop может работать без отдельного установщика, потому что использует свою копию Git. Для уроков с git status в PowerShell и для статей с CI всё равно ставьте Git for Windows с пунктом про command line.
Настройка Git — имя, email, ветка по умолчанию
Git подписывает коммиты именем и email. Настройте один раз до первого коммита (подойдут и локальные проекты без GitHub):
git config --global user.name "Иван Иванов"
git config --global user.email "ivan@example.com"
git config --global init.defaultBranch main
git config --list --global
| Уровень | Файл | Когда использовать |
|---|---|---|
| Локальный | .git/config в проекте | Другой email только для одного репозитория (работа / личное) |
| Глобальный | ~/.gitconfig (Windows: %USERPROFILE%\.gitconfig) | Все репозитории пользователя |
| Системный | /etc/gitconfig | Для всех пользователей ПК (редко, нужны права админа) |
При чтении настройки Git смотрит: локальный → глобальный → системный; используется первое найденное значение.
GitHub Desktop: File → Options → Git (на Mac: Preferences → Git) — те же поля Name и Email, Desktop записывает их в глобальный git config.
Email для GitHub лучше совпадать с адресом аккаунта или быть добавленным в Emails, иначе коммиты не привяжутся к профилю на сайте.
Перед первым push настройте доступ к хостингу — без этого git clone по HTTPS может запросить логин, а SSH выдаст "Permission denied".
Доступ к GitHub и GitLab — SSH и токен
Хостинг проверяет, что вы имеете право писать в репозиторий. Два рабочих способа:
| Способ | URL в git remote | Когда удобно |
|---|---|---|
| HTTPS + Personal Access Token (PAT) | https://github.com/USER/repo.git | Быстрый старт, корпоративный прокси, CI с секретом |
| SSH | git@github.com:USER/repo.git | Ежедневная работа без ввода пароля в терминале |
Пароль от сайта GitHub не подходит для git push по HTTPS — нужен токен с правами repo (или scope для GitLab/Bitbucket по их документации).
Чек-лист HTTPS + PAT (GitHub)
- На GitHub: Settings → Developer settings → Personal access tokens — создать fine-grained или classic token с доступом к нужным репозиториям.
- Скопировать токен один раз (потом его не покажут).
- При первом
git pushпо HTTPS ввести логин GitHub и токен вместо пароля. - На Windows часто помогает Git Credential Manager — он запоминает токен в менеджере учётных данных.
git remote add origin https://github.com/USER/my-app.git
git push -u origin main
Токен не коммитьте в репозиторий. Если попал в Git — см. секрет в истории и .gitignore.
Чек-лист SSH (GitHub)
- Сгенерировать ключ (если ещё нет):
ssh-keygen -t ed25519 -C "ivan@example.com" -f ~/.ssh/id_ed25519_github
- Запустить агент и добавить ключ (Linux/macOS; на Windows — ssh-agent в PowerShell или встроенный OpenSSH).
- Скопировать публичный ключ (
id_ed25519_github.pub) в GitHub: Settings → SSH and GPG keys → New SSH key. - Проверить:
ssh -T git@github.com
- Remote на SSH:
git remote set-url origin git@github.com:USER/my-app.git
git push -u origin main
Несколько аккаунтов (GitHub + GitVerse и т.д.) — отдельные ключи и ~/.ssh/config; см. множественные сервисы Git. Общая теория SSH — в основах ИБ.
Команды cd, ls/dir, кавычки в путях — в разделе "Терминал" (часть 2).
Здесь — установка Git и доступ к серверу.
Пошаговый алгоритм — с чего начать
Сценарий A — только GitHub Desktop (без терминала)
| Шаг | Действие |
|---|---|
| 1 | Скачать GitHub Desktop, установить, войти в аккаунт GitHub |
| 2 | File → Options → Git — указать имя и email |
| 3a | File → Clone repository — URL с GitHub → выбрать папку на диске |
| 3b | File → Add local repository — указать папку, где уже есть .git |
| 3c | File → New repository — имя, путь (например C:\Projects\MySite), создать |
| 4 | Править файлы в редакторе; в Desktop вкладка Changes — отметить файлы, Summary, Commit |
| 5 | Publish repository (первый раз) или Push origin — отправить на GitHub |
Публикация сайта на Pages — лабораторный кейс.
Сценарий B — терминал (после установки Git в PATH)
Клонировать существующий репозиторий с GitHub:
cd C:\Projects
git clone https://github.com/USER/repo-name.git
cd repo-name
git status
Новый проект с нуля и отправка на GitHub:
mkdir C:\Projects\my-app
cd C:\Projects\my-app
git init
git config user.name "Иван Иванов" # если не задано --global
git config user.email "ivan@example.com"
echo "# my-app" > README.md
git add README.md
git commit -m "Initial commit"
git remote add origin https://github.com/USER/my-app.git
git branch -M main
git push -u origin main
Подключить уже существующую папку с кодом (ещё без Git):
cd C:\Projects\existing-folder
git init
git add .
git commit -m "Первый коммит: существующий код"
git remote add origin https://github.com/USER/existing-folder.git
git push -u origin main
На GitHub репозиторий existing-folder нужно создать заранее (пустой, без README), либо использовать gh repo create / Desktop Publish.
Ежедневный цикл:
# правки в файлах
git status
git add file1.txt file2.css # или git add .
git commit -m "Описание изменений"
git push
Подробнее про staged, git diff и конфликты — в главе 112.
Сценарий C — Desktop и терминал вместе
Частая схема — репозиторий добавлен в GitHub Desktop, коммиты иногда в Desktop, иногда в VS Code / PowerShell. Главное — одна папка, один .git; настройки user.name / user.email общие через git config.
Git-клиенты — обзор
Все перечисленные программы не заменяют понимание Git:
- они показывают статус файлов;
- историю и кнопки "Commit / Push";
- а запись в
.gitвыполняет та же программаgit.
| Клиент | ОС | Нужен отдельный Git? | Сильная сторона |
|---|---|---|---|
| GitHub Desktop | Windows, macOS | встроенный для GUI; для PATH — Git for Windows | Простой старт, GitHub |
| Sourcetree | Windows, macOS | да, ищет при первом запуске | Граф коммитов, Bitbucket |
| GitKraken | Win, macOS, Linux | да | Красивый граф, drag-and-drop |
| Tower | macOS, Windows | да | Скорость, платный |
| Fork | Windows, macOS | да | Быстрый нативный UI |
| SmartGit | Win, macOS, Linux | да | Подмодули, команды |
| Gitnuro | Windows, macOS | да | Минимализм |
| TortoiseGit | Windows | да | Контекстное меню проводника |
| Working Copy | iOS / iPadOS | на устройстве | Git с телефона |
GitHub Desktop
Официальный клиент GitHub для Windows и macOS. Закрывает типовой цикл:
- клонирование;
- ветки;
- коммит;
- push/pull;
- просмотр diff;
- разрешение простых конфликтов.

| Элемент интерфейса | Назначение |
|---|---|
| Список репозиториев слева | Переключение между проектами |
| Changes | Изменённые файлы; галочки — что войдёт в коммит |
| Summary / Description | Сообщение коммита |
| Commit to main | Локальный снимок (аналог git commit) |
| Push origin | Отправка на GitHub (git push) |
| Выпадающий список веток | git switch / checkout / создание ветки |
| История по центру | git log, просмотр патча |
Установка: desktop.github.com → вход через GitHub → Clone, Add или New repository.
Ограничение для обучения: команды git в PowerShell после одного Desktop могут не работать — поставьте Git for Windows отдельно.
Sourcetree
Бесплатный клиент Atlassian для Git и Mercurial. Удобен, когда нужен наглядный граф коммитов и веток и работа с Bitbucket, GitHub, GitLab.

При первом запуске Sourcetree ищет установленный Git — без Git for Windows установка неполная.

Три зоны окна — репозитории и ветки, список изменённых файлов, граф истории. Коммит — через staged-файлы и кнопку Commit; push/pull — на панели инструментов.
GitKraken
Кроссплатформенный клиент (Windows, macOS, Linux) на Electron. Интеграции с GitHub, GitLab, Bitbucket, Azure DevOps. Бесплатная лицензия — для публичных репозиториев; приватные и коммерция — платно.

Stage All → Commit — аналог git add + git commit. Слияние веток — перетаскиванием на графе. Для удалённого сервера настраивают SSH-ключи или токены в настройках аккаунта.
Tower
Коммерческий клиент (macOS, Windows) с упором на скорость и клавиатурные сокращения. Пробный период ~30 дней. Подходит опытным пользователям с большими репозиториями.

Working Copy
Мобильный Git-клиент для iOS и iPadOS — клонирование, коммиты, ветки, синхронизация с GitHub/GitLab. Удобен для правок и просмотра на планшете; полноценная разработка по-прежнему чаще на ПК.
Working Copy не заменяет desktop-клиент, а дополняет его в поездках.
Fork (клиент)
Fork — независимый desktop-клиент для Windows и macOS с нативным интерфейсом (без Electron). Акцент на скорости отклика и удобном графе веток; хорошо тянет крупные репозитории.

Установка с git-fork.com. Требует установленный Git в системе. По операциям близок к GitKraken/Sourcetree: stage, commit, merge, interactive rebase в GUI.
Не путать с fork репозитория на GitHub — копией чужого проекта у себя в аккаунте.
SmartGit
Клиент syntevo для Windows, macOS, Linux — подмодули, интеграции с трекерами задач, продвинутые сценарии для команд. Бесплатная лицензия — некоммерческое использование; коммерция — платная.
Gitnuro
Легковесный клиент с минималистичным интерфейсом (Windows, macOS). Быстрый запуск, базовый набор без перегруза панелями — альтернатива тяжёлым Electron-приложениям.
TortoiseGit
Интеграция Git в Проводник Windows — правый клик по папке и файлам, оверлеи иконок (изменён, добавлен, конфликт).

| Действие в меню | Аналог в терминале |
|---|---|
| Git Create repository here | git init |
| Git Clone… | git clone |
| Git Commit | git commit |
| TortoiseGit → Push | git push |
После установки иногда нужна перезагрузка проводника или сеанса Windows.

Оверлеи — зелёная галочка — без изменений, красный восклицательный знак — изменён, синий "?" — не в Git. Конфликты слияния — диалог выбора "моя / чужая / обе" версии фрагмента.
Чек-лист "готов к работе"
git --versionв PowerShell (или выбранном терминале) отвечает версией.git config --global user.nameиuser.emailзаданы.init.defaultBranch=main(по желанию, но удобно для GitHub).- GitHub Desktop установлен и авторизован или настроен SSH/HTTPS для
git push. - Пройден один полный цикл: clone/init → правка → commit → push.
Дальше — Как работать с Git, типовые ошибки — Типовые ситуации с Git, публикация статики — GitHub Pages.
Статический сайт или портфолио можно опубликовать через git push на GitHub Pages (HTTPS/SSH, ветки, workflow) — лабораторный кейс "Размещение своего сайта с GitHub Pages".