Git Bash: что это и как пользоваться в Windows
Git Bash — это терминал для Windows, который устанавливается вместе с Git for Windows и даёт привычную Unix-среду: оболочку bash, команды ls, cd, cat, grep, ssh и сам Git. Он нужен, чтобы команды Git и инструкции из документации работали в Windows так же, как в Linux и macOS.
Что такое Git Bash
Git Bash — это приложение для Windows, которое ставится вместе с Git for Windows и открывает окно терминала с оболочкой bash. Внутри работают сам Git и набор стандартных Unix-утилит: ls, cd, pwd, cat, grep, find, less, ssh, ssh-keygen, curl и другие.
Технически это порт окружения MSYS2: программы скомпилированы под Windows, но ведут себя как в Linux. Окно терминала по умолчанию — эмулятор MinTTY. Это не виртуальная машина и не полноценный Linux — для этого существует WSL. Git Bash легче: он запускается мгновенно и работает прямо с файлами Windows.
В поиске его нередко пишут как «git bush» или «гит баш» — речь об одном и том же. Bash расшифровывается как Bourne Again SHell, к кустам (bush) отношения не имеет.
Зачем нужен Git Bash, если есть cmd и PowerShell
Git прекрасно работает и в PowerShell, и в обычной командной строке. Но у Git Bash есть практические преимущества, особенно для новичков.
- Одинаковые команды на всех системах. Документация Git, ответы на форумах, инструкции GitHub и курсы пишут команды для bash. В Git Bash они работают без переделки:
rm -rf build,cat ~/.ssh/id_ed25519.pub,export VAR=value. - Готовые инструменты для SSH.
ssh-keygen,ssh-agent,ssh-addуже на месте — ключ для GitHub создаётся за минуту. - Подсказки Git в приглашении. Git Bash показывает текущую ветку прямо в строке ввода, например
(main), а во время слияния —(main|MERGING). - Автодополнение. Tab дополняет команды Git, имена веток и файлов.
- Навык на будущее. Серверы, Docker-контейнеры, CI работают на Linux. Привыкнув к bash в Git Bash, вы почувствуете себя на сервере как дома.
Git Bash, Git CMD, PowerShell: в чём разница
После установки Git for Windows в меню «Пуск» появляется несколько пунктов, и это сбивает с толку.
| Инструмент | Что это | Когда использовать |
|---|---|---|
| Git Bash | Оболочка bash с Unix-утилитами и Git | Основная работа с Git, следование инструкциям из интернета |
| Git CMD | Обычная командная строка Windows (cmd.exe) с Git в PATH | Если привыкли к cmd и нужны только команды git |
| Git GUI | Простой графический клиент на Tcl/Tk | Наглядно собрать коммит, редко используется |
| PowerShell / cmd | Стандартные терминалы Windows | Git работает, если при установке выбран PATH «from the command line and also from 3rd-party software» |
Git CMD — это не отдельная программа, а обычный cmd с настроенным окружением. Команды Git в нём те же, но ls, cat и grep не работают: вместо них dir, type и findstr. Запросы «cmd git» обычно означают именно это: как запускать git из стандартной командной строки. Ответ — никак специально, просто выполнить git status, если Git есть в PATH.
Как открыть Git Bash
Из меню «Пуск»
Наберите «Git Bash» и запустите приложение. Терминал откроется в домашней папке пользователя: /c/Users/Имя, которая в bash обозначается как ~.
В нужной папке через контекстное меню
Самый удобный способ: в Проводнике кликните правой кнопкой по пустому месту внутри папки проекта и выберите «Open Git Bash here». В Windows 11 этот пункт спрятан в «Показать дополнительные параметры» (или Shift + правый клик).
В терминале VS Code
Откройте терминал (Ctrl + `), нажмите стрелку рядом с «+» и выберите Git Bash. Чтобы он открывался по умолчанию, выполните команду «Terminal: Select Default Profile» и выберите Git Bash.
В Windows Terminal
Git for Windows может сам добавить профиль Git Bash в Windows Terminal (опция в мастере установки). Если профиля нет, создайте новый с командой C:\Program Files\Git\bin\bash.exe -i -l.
Пути и файлы: главное отличие от Windows
В Git Bash пути записываются в Unix-стиле. Диск C: превращается в /c, обратные слеши — в прямые.
| Windows | Git Bash |
|---|---|
C:\Users\Anna\projects | /c/Users/Anna/projects |
D:\work | /d/work |
%USERPROFILE% | ~ или $HOME |
Если в пути есть пробелы, берите его в кавычки: cd "/c/Users/Anna/My Projects". Открыть текущую папку в Проводнике можно командой explorer ., а в VS Code — code ..
Базовые команды Git Bash для новичка
Навигация и файлы
pwd # где я нахожусь
ls -la # список файлов, включая скрытые (.git, .gitignore)
cd projects/site # перейти в папку
cd .. # на уровень выше
mkdir new-app # создать папку
touch index.html # создать пустой файл
cat README.md # показать содержимое
rm file.txt # удалить файл
rm -r old-folder # удалить папку с содержимым
clear # очистить экран
Первый репозиторий прямо в Git Bash
$ mkdir my-first-repo && cd my-first-repo
$ git init
Initialized empty Git repository in C:/Users/Anna/my-first-repo/.git/
$ echo "Привет, Git" > hello.txt
$ git add hello.txt
$ git commit -m "Добавить hello.txt"
$ git log --oneline
После git init приглашение изменится: появится имя ветки в скобках. Это быстрый способ понять, что вы находитесь внутри репозитория.
Полезные приёмы
- Tab — автодополнение команд, веток, файлов. Нажмите дважды, чтобы увидеть варианты.
- Стрелка вверх — предыдущая команда;
history— вся история; Ctrl + R — поиск по истории. - Копировать/вставить — в MinTTY выделение мышью сразу копирует, вставка — Shift + Insert или правая кнопка. Ctrl + C в терминале прерывает команду, а не копирует.
- q — выход из постраничного просмотра (
git log,git diffоткрываются вless). - Esc, затем :q! и Enter — выход из Vim, если он открылся для сообщения коммита.
Git CLI: почему стоит учить командную строку
Git CLI — интерфейс командной строки Git, то есть сами команды git .... Графические клиенты удобны для просмотра истории, но у них есть пределы: не все операции доступны, а при ошибке кнопка не объясняет, что происходит. Командная строка даёт полный контроль и подробные сообщения.
Ещё один аргумент: на собеседовании и в чужой команде вас попросят показать, как вы отменяете коммит или разрешаете конфликт, а у всех разные GUI. Команды одинаковы везде. Хорошая стратегия — работать в CLI, а GUI или встроенные инструменты IDE использовать для просмотра diff и истории.
Настройка Git Bash под себя
Алиасы в ~/.bashrc
Git Bash при запуске читает ~/.bash_profile и ~/.bashrc. Добавьте туда сокращения:
alias gs='git status'
alias gl='git log --oneline --graph --all'
alias ll='ls -la'
Чтобы изменения применились без перезапуска, выполните source ~/.bashrc. Если при запуске появится предупреждение о том, что найден .bashrc, но нет .bash_profile, Git Bash создаст .bash_profile сам — это нормально.
Алиасы самого Git
Алиасы можно хранить и в Git, тогда они работают в любом терминале:
git config --global alias.st status
git config --global alias.lg "log --oneline --graph --all"
Теперь git st и git lg работают и в Git Bash, и в PowerShell.
Внешний вид
Шрифт, размер, цвета и прозрачность настраиваются правым кликом по заголовку окна → Options. Для кириллицы в разделе Text проверьте, что выбрана кодировка UTF-8.
Типичные проблемы в Git Bash
Кракозябры вместо русских букв в git log
Обычно помогает выставить кодировку UTF-8 в Options → Text и добавить в ~/.bashrc строку export LANG=ru_RU.UTF-8. Для имён файлов на кириллице в git status выполните git config --global core.quotepath false — иначе они отображаются как экранированные последовательности вроде \320\277.
Интерактивные программы зависают
Некоторые консольные программы (например, интерпретатор Python или node без аргументов) в MinTTY ведут себя странно. Запускайте их через winpty: winpty python, или используйте Git Bash внутри Windows Terminal.
Пути превращаются во что-то странное
MSYS автоматически конвертирует аргументы, похожие на Unix-пути, в Windows-пути. Иногда это мешает, например при передаче /app в docker run. Решение — удвоить слеш (//app) или задать для команды MSYS_NO_PATHCONV=1.
«Permission denied (publickey)» при push
SSH-ключ не создан или не добавлен на GitHub. Создайте ключ в Git Bash командой ssh-keygen -t ed25519 -C "you@example.com", добавьте содержимое ~/.ssh/id_ed25519.pub в настройки GitHub и проверьте ssh -T git@github.com.
Git Bash или WSL
WSL — это настоящий Linux внутри Windows с собственной файловой системой и пакетами. Он нужен, если вы разрабатываете под Linux: запускаете Docker, компилируете, используете серверный стек. Git Bash проще и легче, и для работы с Git его хватает полностью. Важно не смешивать: репозиторий, склонированный внутри WSL, лучше обслуживать Git из WSL, а репозиторий на диске C: — Git for Windows.
Итог
Git Bash — это терминал с bash и Unix-утилитами, который приходит вместе с Git for Windows. Он делает Windows совместимой с документацией и инструкциями Git, даёт готовый SSH и показывает ветку в приглашении. Git CMD — тот же Git в обычной командной строке, без Unix-команд. Для обучения и повседневной работы в Windows выбирайте Git Bash — в курсе по Git он используется как основной терминал на практических занятиях.
Частые вопросы
Git Bash бесплатный?
Да, Git Bash входит в состав Git for Windows и распространяется бесплатно под открытой лицензией.
Можно ли установить Git Bash отдельно от Git?
Нет, Git Bash ставится только вместе с Git for Windows. Если Git уже установлен, Git Bash есть в меню «Пуск».
Есть ли Git Bash на macOS и Linux?
Отдельной программы нет и она не нужна: в macOS и Linux встроенный терминал уже работает с bash или zsh и Unix-утилитами.
Где Git Bash хранит домашнюю папку и настройки?
Домашняя папка — C:\Users\Имя, в bash она доступна как ~. Там же лежат .bashrc, .bash_profile, .gitconfig и папка .ssh.
Можно ли запускать в Git Bash bat- и exe-файлы?
Да, Windows-программы запускаются по имени или пути, например ./build.bat или notepad file.txt.
Эта тема подробно разобрана с практикой в курсе «Git с нуля до уверенного разработчика».
Перейти к курсу