Основы

Git Bash: что это и как пользоваться в Windows

Обновлено: · Skillaria.Top

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Стандартные терминалы WindowsGit работает, если при установке выбран 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, обратные слеши — в прямые.

WindowsGit 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 с нуля до уверенного разработчика».

Перейти к курсу