Страницы

Поиск по вопросам

суббота, 30 ноября 2019 г.

Разница в использовании git cmd и git bash под windows

#git #git_bash #git_cmd


Установил Git for Windows с сайта https://git-scm.com/
После установки есть возможность запускать две консоли - git cmd и git bash.
Я так понимаю, что git cmd - командная строка windows, а git bash - командная строка
linux. Первые шаги при использовании не выявили существенных отличий в работе обоих.
Заметил лишь, что в git bash есть удобное и достаточно приятное выделение цветом, а
также подсказки для команд при двойном нажатии Tab.
Наверняка есть более глобальные отличия между git cmd и git bash, которые заставят
любителя cmd запускать bash. Вопрос: какие? Ибо тогда зачем в сборку для windows добавлять
альтернативу cmd?
    


Ответы

Ответ 1



Не бывает git cmd или git bash. Есть только сервисные утилиты, а точнее одна сервисная утилита с разными именами: git-cmd.exe и git-bash.exe. Оба эти exe-шника делают Инициализация переменных окружения (PATH, и пр.) Запуск терминала. Разница между ними только одна - по умолчанию git-bash.exe запускает терминал mintty с bash внутри. git-cmd.exe запускает стандартный терминал Windows с cmd.exe. Более того, git-cmd.exe имеет ключик --command=... с помощью которого можно запустить bash вместо cmd при желании. git.exe это самостоятельная программа рядом с которой лежат все необходимые утилиты из пакета msys (например ls, vim, sed, и прочая), а недостающие утилиты можно "доставить" с помощью pacman. Предполагаемая проблема с "путями" не имеет оснований - все команды выполняет сам гит. git add **/*.cpp будет обрабатываться самим гитом. Реальные различия: Из командной строки cmd.exe несколько меняется синтаксис, т.к. ^ это управляющий символ cmd.exe. Например, вместо git.exe rebase -i 2385397^1 нужно писать git.exe rebase -i 2385397^^1. Маски файлов, вроде вышеописанного git add *.cpp не "разворачиваются" в список файлов, то есть аргументы передаются без изменений и git самостоятельно выполняет поиск подходящих файлов. В итоге мы имеем ошибочное поведение когда git add *.cpp добавляет файлы из подкаталогов. В консоли cmd.exe (если только она не в ConEmu запущена) нельзя использовать 256 цветов в Vim. Вот наверное и всё.

Комментариев нет:

Отправить комментарий