Перейти к основному содержимому

Установка и настройка 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 только внутри приложения.

Варианты:

  1. Рекомендуется — поставить Git for Windows и на шаге установки включить доступ из командной строки (см. пошаговую установку).
  2. Вручную — добавить в PATH папку с git.exe, если Git уже есть (например, после Git for Windows или встроенный Git из другого клиента). См. добавление PATH вручную.

Проверка в новом окне терминала (старое не подхватывает PATH до перезапуска):

git --version

Ожидаемый ответ похож на git version 2.47.0.windows.1. Пустой вывод или ошибка — Git в PATH нет.

Git Bash ≠ PowerShell

Установщик 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Загрузка интерактивного демо…

  1. Скачайте установщик: git-scm.com/download/win.
  2. Запустите .exe от имени обычного пользователя (админ не обязателен).
  3. На шаге Adjusting your PATH environment выберите один из вариантов:
    • Git from the command line and also from 3rd-party softwaregit доступен в cmd, PowerShell и IDE (рекомендуется для обучения);
    • Git Bash only — только в Git Bash, в PowerShell команды не будет;
    • Use Git and optional Unix tools from the Command Prompt — расширенный PATH с Unix-утилитами (осторожно: может пересечься с другими программами).
  4. Остальные шаги мастера можно оставить по умолчанию (редактор, окончания строк LF/CRLF — для курса не критично на старте).
  5. Завершите установку и закройте все открытые терминалы, затем откройте новый 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 установлен, но терминал его не видит:

  1. Найдите git.exe — типичные пути:
    • C:\Program Files\Git\cmd\
    • C:\Program Files (x86)\Git\cmd\
  2. Параметры WindowsСистемаО системеДополнительные параметры системыПеременные среды.
  3. В Переменные среды пользователя (или системные, если нужно всем) выберите PathИзменитьСоздать → вставьте путь к папке cmd (где лежит git.exe), не к корню Git.
  4. ОК во всех окнах, перезапустите терминал и VS Code.
GitHub Desktop и Git

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 с секретом
SSHgit@github.com:USER/repo.gitЕжедневная работа без ввода пароля в терминале

Пароль от сайта GitHub не подходит для git push по HTTPS — нужен токен с правами repo (или scope для GitLab/Bitbucket по их документации).

Чек-лист HTTPS + PAT (GitHub)

  1. На GitHub: Settings → Developer settings → Personal access tokens — создать fine-grained или classic token с доступом к нужным репозиториям.
  2. Скопировать токен один раз (потом его не покажут).
  3. При первом git push по HTTPS ввести логин GitHub и токен вместо пароля.
  4. На Windows часто помогает Git Credential Manager — он запоминает токен в менеджере учётных данных.
git remote add origin https://github.com/USER/my-app.git
git push -u origin main

Токен не коммитьте в репозиторий. Если попал в Git — см. секрет в истории и .gitignore.

Чек-лист SSH (GitHub)

  1. Сгенерировать ключ (если ещё нет):
ssh-keygen -t ed25519 -C "ivan@example.com" -f ~/.ssh/id_ed25519_github
  1. Запустить агент и добавить ключ (Linux/macOS; на Windows — ssh-agent в PowerShell или встроенный OpenSSH).
  2. Скопировать публичный ключ (id_ed25519_github.pub) в GitHub: Settings → SSH and GPG keys → New SSH key.
  3. Проверить:
ssh -T git@github.com
  1. 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 — в основах ИБ.

Терминал до Git

Команды cd, ls/dir, кавычки в путях — в разделе "Терминал" (часть 2).

Здесь — установка Git и доступ к серверу.


Пошаговый алгоритм — с чего начать

Сценарий A — только GitHub Desktop (без терминала)

ШагДействие
1Скачать GitHub Desktop, установить, войти в аккаунт GitHub
2File → Options → Git — указать имя и email
3aFile → Clone repository — URL с GitHub → выбрать папку на диске
3bFile → Add local repository — указать папку, где уже есть .git
3cFile → New repository — имя, путь (например C:\Projects\MySite), создать
4Править файлы в редакторе; в Desktop вкладка Changes — отметить файлы, Summary, Commit
5Publish 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 DesktopWindows, macOSвстроенный для GUI; для PATH — Git for WindowsПростой старт, GitHub
SourcetreeWindows, macOSда, ищет при первом запускеГраф коммитов, Bitbucket
GitKrakenWin, macOS, LinuxдаКрасивый граф, drag-and-drop
TowermacOS, WindowsдаСкорость, платный
ForkWindows, macOSдаБыстрый нативный UI
SmartGitWin, macOS, LinuxдаПодмодули, команды
GitnuroWindows, macOSдаМинимализм
TortoiseGitWindowsдаКонтекстное меню проводника
Working CopyiOS / iPadOSна устройствеGit с телефона

GitHub Desktop

Официальный клиент GitHub для Windows и macOS. Закрывает типовой цикл:

  • клонирование;
  • ветки;
  • коммит;
  • push/pull;
  • просмотр diff;
  • разрешение простых конфликтов.

image-10.png

Элемент интерфейсаНазначение
Список репозиториев слеваПереключение между проектами
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.

image-13.png

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

image-14.png

Три зоны окна — репозитории и ветки, список изменённых файлов, граф истории. Коммит — через staged-файлы и кнопку Commit; push/pull — на панели инструментов.


GitKraken

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

image-15.png

Stage All → Commit — аналог git add + git commit. Слияние веток — перетаскиванием на графе. Для удалённого сервера настраивают SSH-ключи или токены в настройках аккаунта.


Tower

Коммерческий клиент (macOS, Windows) с упором на скорость и клавиатурные сокращения. Пробный период ~30 дней. Подходит опытным пользователям с большими репозиториями.

image-16.png


Working Copy

Мобильный Git-клиент для iOS и iPadOS — клонирование, коммиты, ветки, синхронизация с GitHub/GitLab. Удобен для правок и просмотра на планшете; полноценная разработка по-прежнему чаще на ПК.

Working Copy не заменяет desktop-клиент, а дополняет его в поездках.


Fork (клиент)

Fork — независимый desktop-клиент для Windows и macOS с нативным интерфейсом (без Electron). Акцент на скорости отклика и удобном графе веток; хорошо тянет крупные репозитории.

image-17.png

Установка с 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 — правый клик по папке и файлам, оверлеи иконок (изменён, добавлен, конфликт).

image-18.png

Действие в менюАналог в терминале
Git Create repository heregit init
Git Clone…git clone
Git Commitgit commit
TortoiseGit → Pushgit push

После установки иногда нужна перезагрузка проводника или сеанса Windows.

image-19.png

Оверлеи — зелёная галочка — без изменений, красный восклицательный знак — изменён, синий "?" — не в Git. Конфликты слияния — диалог выбора "моя / чужая / обе" версии фрагмента.


Чек-лист "готов к работе"

  1. git --version в PowerShell (или выбранном терминале) отвечает версией.
  2. git config --global user.name и user.email заданы.
  3. init.defaultBranch = main (по желанию, но удобно для GitHub).
  4. GitHub Desktop установлен и авторизован или настроен SSH/HTTPS для git push.
  5. Пройден один полный цикл: clone/init → правка → commit → push.

Дальше — Как работать с Git, типовые ошибки — Типовые ситуации с Git, публикация статики — GitHub Pages.

После настройки Git

Статический сайт или портфолио можно опубликовать через git push на GitHub Pages (HTTPS/SSH, ветки, workflow) — лабораторный кейс "Размещение своего сайта с GitHub Pages".