В чем точное значение Git Bash?

94

Git Bash

Последние два дня я работаю с Git Bash. Я знаю , что теперь основные операции , такие как commit, push, pull, fetch, и merge. Но я до сих пор не знаю, что такое Git Bash на самом деле!

Я много искал о Git Bash, но все сайты, которые я видел, сосредоточены на функциональности его команд. Я до сих пор не нашел хорошего ответа на свой вопрос. Теперь, я думаю, я попал в нужное место, чтобы получить этот ответ!

ДРАДЖИ
источник
4
Людей также может заинтересовать мой вопрос о SuperUser Что такое Git Bash для Windows?
geneorama
Не существует такой вещи, как «Git bash». Есть bash и есть git. Bash - это интерактивный интерпретатор командной строки, который по историческим причинам иногда также называют просто «sh» или «оболочкой», аналогично Microsoft «cmd». Там есть , однако, «мерзавец оболочка», которая является «заперто вниз» интерпретатор команда используется для ограничения мощности анонимного доступа к GIT серверов, и является частью распределения мерзавца. Так как мерзавец был разработан на и для UNIX подобных систем, то лучше всего в паре с CLI «Баш», хотя, по идее, это оболочка агностик.
Hatebit

Ответы:

78

git bash - это оболочка, в которой:

  • запущенный процесс sh.exe(упакован с msysgit , as share/WinGit/Git Bash.vbs)
  • git - известная команда
  • $HOME определено

См. « Исправление переносимого $HOMEместоположения msysGit »:

В Windows 64:

C:\Windows\SysWOW64\cmd.exe /c ""C:\Prog\Git\1.7.1\bin\sh.exe" --login -i"

Это отличается от git-cmd.bat, который предоставляет команды git в простой командной строке DOS.

Такой инструмент, как GitHub для Windows (G4W), предоставляет другую оболочку для git (включая оболочку PowerShell).


Обновление апрель 2015 г . :

Примечание: git bash в msysgit / Git для Windows 1.9.5 - старый:

GNU bash, version 3.1.20(4)-release (i686-pc-msys)
Copyright (C) 2005 Free Software Foundation, Inc.

Но с постепенным прекращением использования msysgit (4 квартал 2015 г.) и нового Git для Windows (2 квартал 2015 г.) теперь у вас есть Git для Windows 2.3.5 .
Он имеет гораздо более позднюю версию bash, основанную на 64- битном проекте msys2 , независимую переписанную версию MSYS, основанную на современном Cygwin (уровень совместимости POSIX) и MinGW-w64 с целью улучшения взаимодействия с собственным программным обеспечением Windows. msys2поставляется с собственным установщиком .

Теперь git bash (с новым Git для Windows):

GNU bash, version 4.3.33(3)-release (x86_64-pc-msys)
Copyright (C) 2013 Free Software Foundation, Inc.

Оригинальный ответ (июнь 2013 г.) Точнее, из msygit wiki :

Исторически Git для Windows официально поддерживался только с помощью Cygwin.
Чтобы помочь создать нативную версию Windows, этот проект был начат на основе вилки mingw .

Чтобы молочный суп из названий проектов был более понятным, мы говорим так:

  • msysGit - это название этого проекта, среды сборки Git для Windows, которая выпускает официальные двоичные файлы
  • MinGW - минималистичная среда разработки для нативных приложений Microsoft Windows.
    Это действительно очень тонкий слой времени компиляции над Microsoft Runtime; Таким образом, программы MinGW являются настоящими программами Windows, без концепции путей в стиле Unix или тонкостей POSIX, таких как fork()вызов
  • MSYS - это система интерпретатора командной строки Bourne Shell, используется MinGW (и другими), в прошлом была разветвлена из Cygwin.
  • Cygwin - Linux-подобная среда, которая использовалась в прошлом для сборки Git для Windows, в настоящее время не имеет отношения к msysGit.

Итак, ваше двухстрочное описание "git bash":

" Git bash" - это оболочка msys, включенная в "Git для Windows", и это урезанная версия Cygwin (к тому же старая версия), единственная цель которой - предоставить достаточно уровня POSIX для запуска bash.


Напоминание:

msysGit - это среда разработки для компиляции Git для Windows. Он завершен в том смысле, что вам просто нужно установить msysGit, а затем вы можете собрать Git. Без установки стороннего ПО.

msysGit - это не Git для Windows; это установщик, который устанавливает Git - и только Git .

Подробнее см. « Разница между msysgit и Cygwin + git? ».

VonC
источник
2
Я хочу знать об этом только в смысле!
DRAJI
@DRAJI, ты хочешь сказать, что мой ответ не касался того, что ты хотел знать?
VonC
@DRAJI есть еще какие-нибудь подробности, которые вы хотели бы узнать о " git bash"?
VonC
Конечно. Но в первую очередь я хочу узнать об этом только двухстрочное описание, а затем сделаю следующий шаг.
DRAJI
3
например, в чем разница между UNIX Bash и Git Bash?
Александр Миллс
22

Я думаю, что задающий вопрос думает, что git bash - это такая команда, как git init или git checkout . Git bash - это не команда , это интерфейс . Я также предполагаю, что спрашивающий не является пользователем Linux, потому что bash очень популярен в мире unix / linux. Название «баш» является аббревиатурой « Б ourne усиления SH ELL». Bash - это текстовый командный интерфейс, который имеет функции, позволяющие запускать автоматизированные сценарии. Хорошая аналогия была бы сравнить Баш с новым PowerShell интерфейса в Windows7 / 8. бедныхАналогия (но, вероятно, будет легче понять большему количеству людей) - это комбинация командной строки и командных файлов .BAT (пакетных) времен DOS и ранних версий Windows.

ССЫЛКИ:

OMY
источник
10

Bash - это интерфейс командной строки, созданный более двадцати семи лет назад Брайаном Фоксом в качестве бесплатной замены Bourne Shell. Оболочка - это особый вид интерфейса командной строки. Bash является «открытым исходным кодом», что означает, что любой может прочитать код и предложить изменения. С самого начала он поддерживался большим сообществом инженеров, которые работали над тем, чтобы сделать его невероятным инструментом. Bash - это оболочка по умолчанию для Linux и Mac. По этим причинам Bash является наиболее используемой и широко распространенной оболочкой.

В Windows есть другой интерфейс командной строки, называемый командной строкой. Хотя он имеет многие из тех же функций, что и Bash, Bash гораздо более популярен. Из-за силы сообщества с открытым исходным кодом и инструментов, которые они предоставляют, освоение Bash - лучшее вложение, чем освоение командной строки.

Чтобы использовать Bash на компьютере с Windows, нам необходимо загрузить и установить программу под названием Git Bash. Git Bash (это Bash для Windows) позволяет нам легко получить доступ к Bash, а также к другому инструменту под названием Git внутри среды Windows.

Хуан Франсиско Гарсия Гонсалес
источник
1
Кстати, текущий интерфейс командной строки для Windows - это PowerShell. Древняя оболочка CMD на базе DOS все еще существует для совместимости, но MSFT сосредоточивает все свое внимание на PS. На самом деле, это довольно приятно - взять конвейерные функции оболочек на основе Unix (bash, sh, csh, ksh, zsh и т. Д.) И расширить их, чтобы разрешить передачу объектов, а не просто текста.
Питер
3

По своей сути Git - это набор служебных программ командной строки, предназначенных для выполнения в среде командной строки в стиле Unix. Обе современные операционные системы, такие как Linux и macOS, включают встроенные терминалы командной строки Unix. Это делает Linux и macOS дополнительными операционными системами при работе с Git. Microsoft Windows вместо этого использует командную строку Windows, а не среду терминала Unix.

Что такое Git Bash?

Git Bash - это приложение для сред Microsoft Windows, которое обеспечивает уровень эмуляции для работы с командной строкой Git. Баш - это аббревиатура от Bourne Again Shell. Оболочка - это терминальное приложение, используемое для взаимодействия с операционной системой с помощью письменных команд. Bash - популярная оболочка по умолчанию в Linux и macOS. Git Bash - это пакет, который устанавливает Bash, некоторые распространенные утилиты bash и Git в операционной системе Windows.

источник: https://www.atlassian.com/git/tutorials/git-bash

Абхиджит С'кар
источник
2
«Git - это набор служебных программ командной строки, которые предназначены для выполнения в среде командной строки в стиле Unix» ... правда, и это неудивительно, учитывая, что Git был создан Линусом Торвальдсом ( en.wikipedia.org/wiki/Linus_Torvalds )
VonC