Различия между Git-scm, msysGit и Git для Windows

В чем разница между git-scm (загруженным с git-scm.com) и msysGit (размещенным на Код Google, Github и, возможно, другие)? Они оба кажутся очень похожими, и хотя у меня есть git-scm, я применил исправления, указанные для msysGit, и они, похоже, работают нормально.

Кроме того, какой из них Git for Windows, и оба называются Git Bash, или оба имеют оболочку Git Bash, или только один из двух?


person trysis    schedule 10.03.2014    source источник
comment
См. также stackoverflow.com/q/11849737/405017 и stackoverflow.com/q/3672272/405017 и superuser.com/q/742536   -  person Phrogz    schedule 30.04.2015
comment
В чем разница между сайтом1: git-for-windows.github.io и сайтом2: git-scm.com ? Оба предоставляют двоичные файлы Git для Windows.   -  person joedotnot    schedule 05.03.2017
comment
Просто хотел упомянуть, что на момент написания этой статьи gitforwindows.org и git-scm.com/downloads указывают на одни и те же загружаемые двоичные файлы и github.com/git-for-windows/git в любом случае является официальным репозиторием. Сайт gitforwindows.org выглядит как официальное лицо Git для Windows; будьте уверены, это не какой-то отдельный, а обманчиво похожий проект. Это буквально одно и то же программное обеспечение.   -  person John Y    schedule 12.01.2018


Ответы (1)


Веб-сайт git-scm.com является официальным веб-сайтом Git, программного обеспечения для контроля версий. Там нет «Git-SCM», это просто URL-адрес программного обеспечения для управления исходным кодом (SCM) — имя просто Git. Первоначально написанное для Linux, исходное программное обеспечение Git доступно только в виде исходного кода, который нелегко скомпилировать в Windows.

Если вас просто интересует установка Git на Windows, вы можете прекратить чтение здесь и просто скачать сборку Windows с официального сайта.

Гит для Windows

Git для Windows — это проект, посвященный созданию собственных сборок Git для Windows. Выпуски Windows доступны для загрузки на официальном веб-сайте Git, они поставляются в виде 32-разрядных и 64-разрядных сборок.

Git для Windows построен на основе MSYS2 (часть MinGW), который предоставляет минимальную среду оболочки, подобную unix. используется для запуска всех компонентов Git, которые не написаны в собственном коде (большая часть Git написана в виде сценариев оболочки). Чтобы собрать Git с MSYS2, проектная группа имеет специальный «Git для Windows SDK», который представляет собой всю среду сборки, необходимую для сборки Git в Windows, и поставляется со всем, что вам нужно, чтобы начать работать с самим Git.

Проект поддерживает собственную ветвь Git, которая поддерживается в соответствии с исходным проектом Git, но содержит набор патчи, необходимые для его сборки в Windows. выпуски Git для Windows обычно выпускаются с небольшой задержкой после выпуска официальной версии (хотя версии иногда пропущено).

msysGit

До Git версии 2 двоичные файлы Git для Windows выпускались проектом под названием msysGit, который является предшественником проекта Git для Windows. Проект был закрыт 18 августа 2015 года, и вместо него был запущен проект Git для Windows с перестроенной средой разработки Git для Windows SDK. Новый проект в основном начинался с той же командой.

Хотя многие люди думали, что msysGit — это название бинарных файлов Git, на самом деле это было название созданной ими среды разработки. Он был основан на MSYS, более старой и несколько устаревшей версии до того, как MSYS2 был запущен заново. Плохое состояние MSYS было одной из причин, по которой проект Git для Windows был запущен с полностью переработанной средой сборки.

По сути, проект выпустил три вещи: msysGit, Git для Windows и переносимый Git для Windows. Установщик msysGit установит и настроит среду разработки, необходимую для сборки Git в Windows, точно так же, как сейчас это делает Git для Windows SDK. Git для Windows был установщиком, который устанавливал Git на машину с Windows, а переносимый Git для Windows был просто бинарным файлом, который вам не нужно было устанавливать. Обратите внимание, что все их выпуски были выпущены как «предварительные» сборки, что означает, что они не будут полностью поддерживаемыми выпусками. Несмотря на это, проект был очень зрелым, релизы были очень стабильными и де-факто являлись лучшим способом установки Git в Windows.

Гит Баш

Как упоминалось выше, большая часть Git написана в виде сценариев оболочки. Для выполнения этих скриптов Git для Windows использует Bash, поставляемый вместе с MSYS2 (поэтому Bash работает как переводчик для него).

Git Bash обычно относится к ярлыку, который создает установщик Git для Windows. Он запускает полнофункциональное консольное окно с запущенным Bash, поэтому вы можете использовать Git, а также набор стандартных инструментов командной строки или программ Unix (таких как less, awk, grep или даже текстовый редактор vim). Git Bash является распространенным способом взаимодействия с Git, особенно для менее опытных пользователей, хотя вы можете легко использовать его из более ориентированных на Windows сред, таких как PowerShell.

Начиная с Git версии 2, Git Bash по умолчанию запускается в MinTTY, эмуляторе терминала, который поставляется с MSYS2, что упрощает использовать даже для пользователей, не привыкших к работе с консолью.

Также полезно знать, что Git Bash будет работать всегда, даже если вы решили не добавлять какие-либо исполняемые файлы Git в свою переменную PATH во время установки Git для Windows. Тем не менее, я лично рекомендую добавить исполняемый файл Git (просто исполняемый файл Git, выбрав параметр «Использовать Git из командной строки Windows» во время установки) в PATH. Таким образом, вы можете работать с Git из других оболочек (cmd.exe или PowerShell), и другие программы также могут получить к нему доступ (например, многие библиотеки или даже интеграции IDE предполагают, что исполняемый файл Git в PATH будет взаимодействовать с репозиториями Git).

person poke    schedule 10.03.2014
comment
Спасибо! Я не мог найти это НИГДЕ в Интернете, и поверьте мне, я искал много раз. Были обрывки и обрывки, но ничего такого всеобъемлющего, как это. - person trysis; 11.03.2014
comment
Таким образом, msysGit — это двоичные файлы/.exe и т. д., а git-scm — конечный продукт? - person trysis; 11.03.2014
comment
msysGit — это среда сборки для создания конечного продукта, «Git для Windows», который является именно этим (Git, но для Windows), да. А «git-scm» — это просто дерьмовое доменное имя :P - person poke; 11.03.2014
comment
Есть ли разница в производительности при компиляции самостоятельно по сравнению с получением от git-scm? И да, это довольно плохо, что, черт возьми, вообще означает scm? - person trysis; 11.03.2014
comment
Если вы скомпилируете его самостоятельно с помощью msysGit, вы получите тот же конечный продукт, который вы получите, просто скачав готовую вещь. И, к сожалению, для Windows нет ничего лучше, чем msysGit; он немного медленнее, чем в Windows, но полностью совместим с «оригинальным» Git (в Linux), так что это лучшее, что вы можете получить. И «scm» означает «управление исходным кодом», что является другим словом для «программного обеспечения контроля версий». - person poke; 11.03.2014
comment
@trysis, еще один исторический факт: Git для Windows, когда он был в зачаточном состоянии и достиг половой зрелости, назывался msysGit, и многие первые пользователи знали его под этим именем, и оно прижилось. Позже разработчики этого порта для Windows решили изменить имя бинарного установщика, созданного с использованием msysGit, на Git для Windows и зарезервировать имя msysGit только для среды разработки Git для Windows. Это определенно добавляет путаницы, поскольку вы можете найти в Интернете использование имени msysGit, обозначающего Git для Windows. - person kostix; 11.03.2014
comment
@trysis, еще один факт: ни Git, ни Git для Windows не являются проектами, поддерживаемыми предприятиями, поэтому у них действительно нет официальных пакетов программного обеспечения и тому подобного. git-scm.com — это сайт (управляемый одним из разработчиков github, IIRC), который является удобным местом для хранения указателей на исходный код, документацию и учебные пособия и даже для загрузки (которые в любом случае полезны только для Windows и Mac OS X). ). - person kostix; 11.03.2014
comment
@kostix Git «официально поддерживается» сообществом ядра, что уже дает им большую надежность. Такие компании, как GitHub, тоже многое добавляют к этому. git-scm.com считается основным веб-сайтом для Git, а также считается таковым для сопровождающих Git. - person poke; 11.03.2014
comment
@poke, совершенно верно, но у меня сложилось впечатление, что ОП думает, что есть Git и есть Git-SCM как отдельный продукт, возможно, продвигаемый каким-то предприятием (ДВУ .com добавляет путаницы; также обратите внимание, что есть коммерческие продукты, использующие это слово Git в их именах - Smart Git является одним из примеров; в качестве бонуса OP не знал, что означает SCM). Поэтому я пытался показать необоснованность этого предположения — ни больше, ни меньше. - person kostix; 11.03.2014
comment
@kostix Честно говоря, я даже не думал о том, были ли эти 2 сделаны одними и теми же людьми, но я предположил, что это так. Я знаю, что оба созданы обычными людьми, такими как вы или я, а не компаниями, хотя полировка предполагала, что они, по крайней мере, связаны с большой корпоративной структурой. - person trysis; 11.03.2014
comment
@poke Я думаю, scm означает управление конфигурацией программного обеспечения (en.wikipedia.org/wiki/Software_configuration_management). - person Tilman Vogel; 11.09.2014
comment
Обновление msysgit и Git для Windows теперь имеют объединенные имена. См. stackoverflow.com/a/30181774/1224158. - person Bryan P; 12.05.2015
comment
Оба теперь одинаковы, и даже git-scm имеет двоичный код для Wndows (32, 64-разрядная версия).git-scm .com/download/win - person Ravi Parekh; 22.10.2015
comment
@RaviParekh Вы правы, я хотел обновить этот ответ на некоторое время. Спасибо за косвенное напоминание; сделаю это позже :) - person poke; 22.10.2015