В чем разница между msysgit и Cygwin + git?
Теперь я использую msysgit, но мне не нравится Git Bash (вы не можете изменять размер или копировать/вставлять), поэтому я думаю о переходе на Cygwin, потому что тогда я мог бы использовать mintty.
В чем разница между msysgit и Cygwin + git?
Теперь я использую msysgit, но мне не нравится Git Bash (вы не можете изменять размер или копировать/вставлять), поэтому я думаю о переходе на Cygwin, потому что тогда я мог бы использовать mintty.
Редактировать (еще 2 года спустя: октябрь 2014 года)
Йоханнес Шинделин только что объяснил (окт. 2014), что msysgit выведен из строя:
Теперь у нас есть легкий вес Git для Windows SDK, который по существу является стандартной системой MinGW/MSys, управляемой менеджером пакетов mingw-get.
Мы решили просто поменять имя "msysGit" (а также GitHub org с таким же именем) и:
- работаем над Git для Windows (с соответствующий GitHub org),
- с именем " Git для Windows" для установщика, предназначенного для "конечных пользователей" и
- с использованием имени Git для Windows SDK "для среды разработки, ориентированной на Git для разработчиков Windows).
Обновление 2 года спустя: июль 2012
Msysgit останется здесь, и если вам не нужно добавить несколько сотен MB для cygwin, вам действительно не нужно, чтобы Cygwin просто использовал Git на Windows.
И если вы хотите получить доступ к GitHub, вы получите один пакет ( "Git для Windows" + ssh, зарегистрированный для вас на вашей учетной записи GitHub + хороший графический интерфейс) с GitHub для Windows.
Оба Git и msysgit находятся на GitHub.
На странице msysgit.github.com четко показана разница между:
<---------->
" Git для Windows": Чистые пользователи Git | " MsysGit": для тестировщиков, разработчиков, изготовителей настраиваемых установщиков
См. также часто задаваемые вопросы в MSNysgit:
Что это за "MSys" в "MSysGit"?
MSys - это среда для Windows, предлагающая оболочку типа Unix и интерпретатор Perl. Поскольку многие части Git по-прежнему не встроены в C, но вместо этого shell и Perl-скрипты, Git для Windows нуждается в такой среде.
Поэтому мы отправляем Git для Windows с минимальной версией MSys.
MSys также требуется для сборки Git, поскольку мы повторно используем ту же установку Unix-типа, которая используется вверх по течению Git. Мы отправляем более полную среду MSys, включая GCC, в качестве среды сборки (которая поэтому называется nick-name "msysGit" ).
Мы собираем Git как чистую программу MinGW, то есть программу без каких-либо зависимостей ссылок ни на чем, кроме стандартного Библиотеки Windows.
Поэтому, если вам не нужны какие-либо части Git, которые все еще реализованы только в виде сценариев оболочки или Perl, вы можете уйти с запуском простого git.exe.
Оригинальный ответ: июнь 2010 г.
a/Вы можете изменить размер и скопировать-вставить в Git bash, как в любой другой оболочке Windows.
b/Вероятно, вы используете "Git для окон", а не msysgit. Из wiki:
- msysGit - это среда разработки для компиляции Git для Windows. Это полно, в том смысле, что вам просто нужно установить msysGit, а затем вы можете построить git. Без установки стороннего программного обеспечения.
- Git для Windows - установщик, который устанавливает Git - и только Git.
Легко видеть различие:
- установщики для Git имеют префикс Git -,
- У установщиков msysGit есть префикс msysGit-.
Еще одна проблема заключается в том, что установщики MSysGit поставляются в двух вариантах: fullinstall и netinstall.
Кроме того, msysGit по умолчанию не устанавливается наC:\Program Files
.
Но msysGit поставляется сgcc
, компилятором GNU C.
c/From MSysGitHerald10:
Помните:
- MinGW - действительно очень тонкий слой времени компиляции поверх Microsoft Runtime; Поэтому программы MinGW являются настоящими программами Windows без концепции путей в стиле Unix или тонкостей POSIX, таких как вызов
fork()
.- MSys, напротив, представляет собой уменьшенную версию Cygwin (старая версия), единственной целью которой является предоставление достаточного уровня POSIX для запуска bash.
И это не всегда приветствуется:
При работе в Windows мне не нравится этот msysGit, как следует из названия, зависит от MSYS и от инструментов из мира Unix. Я считаю, что все программы в дистрибутиве Git должны стать двоичными файлами, скомпилированными для конкретной платформы, и не полагаться на интерпретаторы интерпретаторов или сторонних языков, таких как Tcl/Tk.
Несмотря на то, что он намного лучше первого Git на сайтах Cygwin с 2007 года.
cygwin + git был единственным способом сделать работу git обратно в день. Теперь, когда msysgit существует, я не вижу причин использовать cygwin.
Я согласен, что git bash не так уж хорош.. так что я делаю
Это ответ от 2017 года...
Основное техническое различие заключается в том, что все программы cygwin зависят от cygwin1.dll; но в то же время наименее интересный для конечного пользователя, поскольку он должен быть почти полностью прозрачным. Основные отличия, которые я обнаружил, не находятся между версиями git и между средой cygwin и средой msys/mingw. Вот некоторые отличия, которые я нашел:
-noacl
по умолчанию. Выполнение этого в cygwin также, похоже, позволяет избежать этих проблем.git status
со всем необходимым содержимым диска в кеше занимает 4,7 секунды с cygwin и 0,4 секунды с msys git. Я не уверен, какая часть уровня совместимости cygwin замедляет работу - блокировки, вилки, файловая система, IPC... все они являются кандидатами.cygpath
между двумя мирами. Это будет играть важную роль при использовании скриптов и т.д. С программами Windows.MSysGit поставляется с очень старой версией SSH. Пропускная способность в моей системе составляла около 10 Мбит. Если вам не нужны скорости клонирования, это не влияет на вас. Исправление состоит в том, чтобы либо запустить Cygwin Git, либо заменить SSH, установленный в MSysGit.
Реализация bash в msysgit старая. Тем не менее, я использую vim при редактировании, и это отлично работает. Что касается резки и склеивания, я часто прибегаю к SHIFT + ALT + [пробел], E, M или тому, что ключи должны получить, чтобы отметить текст, который я хочу. Не идеально, но делает работу достаточно хорошо, поскольку я не вырезаю и не вставляю слишком много.
Теперь я начал запускать Ubuntu на той же машине через VirtualBox. Благодаря бесшовному режиму и общим папкам я могу воспользоваться обновленным bash и быстрым Git.
Я не использую никаких инструментов gui для Git, кроме gitk (для gitk -all), чтобы визуализировать историю, если мне нужно.
Я пробовал cygwin и не понравился. Решение виртуальной коробки намного лучше, если для вас недостаточно msysgit.
Текущая версия git на cygwin - 1.7.5.1, которая очень, очень актуальна (май 2011 г.).
Я не вижу причины (пока) использовать что-либо еще, хотя я рассматриваю попытку msysgit (aka "Git для Windows" ) попробовать (в настоящее время версия 1.7.4).
Msysgit получил ряд исправлений для решения конкретных проблем Windows, таких как нечувствительность к файловой системе, блокировка файлов и т.д. Вероятно, это плохая идея использовать версию cygwin. Если у вас есть cygwin в вашей системе, я бы посоветовал не устанавливать git вообще, а предпочтительно не передавать среды msysgit или cygwin из одного и того же PATH.
cygwin видит ваши локальные файлы в формате Windows, а git - bash видит их в формате unix. Если вы проверите файлы в git - bash, тогда запустите git статус в оболочке cygwin, git думает, что вы изменили каждую строку в репо, если вы запустили статус git в git - bash shell, то только файлы, которые вы затронули, изменены.