Использовать Cygwin или msysGit версию Git, или обе? - PullRequest
22 голосов
/ 04 декабря 2011

Я работаю под управлением Windows 7, сегодня я впервые установил Cygwin, поэтому поигрался с ним. Теперь я хочу начать использовать Git.

Из того, что я прочитал, msysGit позволит вам использовать графический интерфейс, а также добавит щелчок правой кнопкой мыши на опции контекстного меню папки / файла Add to Git GUI и Add to GIT Bash.

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

Так что я застрял. Пара вопросов ...

  1. Если я установлю Git с msysGit, могу ли я по-прежнему запускать командную строку для Git с Cygwin?

  2. В одной книге говорилось, что вы можете установить обе версии Cygwin и msysGit it, если это так, работают ли они с одними и теми же файлами / репо или это похоже на наличие двух отдельных репозиториев Git на каждый файл? Если это так, то это похоже на излишество.

  3. Я также видел, что у msysGit есть портативная версия. Если бы я использовал эту портативную версию, означает ли это, что репозиторий Git хранится на портативном устройстве USB или только в программе? Было бы здорово, если бы это была программа Git и хранилище кода, сохраняемое переносимым.

Ответы [ 6 ]

16 голосов
/ 04 декабря 2011

1) Если вы не используете cygwin для чего-либо другого и хотите использовать Git, используйте msysgit.Это обеспечивает хорошую интеграцию Git с Windows, и почти все инструменты GUI - Git Extensions, TortoiseGit и другие, которые я знаю, зависят от msysgit.Также с msysgit вы можете использовать git из cmd, powershell и т. Д., Что невозможно, если у вас есть только cygwin git.

msysgit поставляется со своим собственным bash, и вы можете использовать его для командной строки, и вы не будетенужен cygwin (опять же, с точки зрения того, что вы не используете cygwin для других целей).Почти все функции git доступны в msysgit и, за исключением некоторых специфических изменений Windows (и производительности), вы обнаружите, что все работает аналогично git на * nix.cygwin не будет столь же производительным, как msysgit и намного менее нативный git на * nix.

2) И возможно иметь их обоих, и вам не нужны отдельные репозитории.Они могут мирно сосуществовать.

3) Git-репозитории легки, так как включают только файловую систему.Не существует концепции портативных репозиториев git, поскольку они эффективно переносимы.Msysgit portable позволяет вам работать с репозиториями Git в системе без установки msysgit.

15 голосов
/ 04 декабря 2011

Вы можете использовать один или оба, но есть некоторые вещи, на которые стоит обратить внимание.

На моей последней работе большая часть команды использовала msysGit; Я использовал Cygwin git, потому что я в любом случае большой пользователь Cygwin.

Два обрабатывают разрешения на выполнение по-разному. При извлечении файла foo.cmd или foo.bat в среде MSYS он рассматривается как исполняемый, поскольку суффикс .cmd или .bat обозначает исполняемый формат. Cygwin не делает; это Unix-подобная среда, поэтому он не предполагает, что файл является исполняемым на основе суффикса. Таким образом, файлы *.cmd отлично работали для всех остальных, но не для меня.

Обходной путь должен был сделать chmod +x, зарегистрировать и отправить изменения, что сделало файлы исполняемыми для меня и не затронуло других пользователей.

Я также столкнулся с некоторыми проблемами при вводе паролей при выполнении push, pull или fetch; код в git, который отключает эхо, работает под MSYS, но не под Cygwin. Я смог избежать этого, используя ssh без пароля.

Помимо этого (и, возможно, одного или двух других вопросов, которые я сейчас не помню), все прошло достаточно гладко.

4 голосов
/ 04 декабря 2011

Git для cygwin и msysGit устанавливают совершенно разные исполняемые файлы.Первый работает только в Cygwin;последний устанавливает свою собственную оболочку bash (и инструменты с графическим интерфейсом), но также может работать с cmd.exe или PowerShell.Я лично предпочитаю msysGit.

Оба будут работать против одних и тех же репозиториев Git.

2 голосов
/ 16 января 2014

Если по какому-то несчастливому повороту судьбы вы имеете дело с репозиторием git, где некоторые коммиты в его истории, скажем, размером в несколько гигов, то у вас не хватит памяти с MSysGit, потому что на данный момент,доступна только 32-разрядная версия (есть 64-разрядная версия, которая находится в Pre-apha, но на данный момент она все еще не проходит некоторые испытания и поэтому не подходит для производства).Только в этой ситуации 64-битная версия Git становится необходимостью.

ОБНОВЛЕНИЕ: есть способ, которым вы все еще можете использовать 64-битную версию Git без использования маршрута Cygwin:

  1. Установите Vagrant
  2. Установите VirtualBox
  3. Добавьте этот VagrantFile в пустую папку
  4. Настройте его дляВаши потребности
  5. В командной строке перейдите в новую папку и введите
    1. Введите команду "vagrant up".Выпейте кофе, пока он завершится.
    2. Затем введите команду "vagrant ssh"

Теперь у вас установлена ​​виртуальная машина Linux с 64-битным git,Далее на виртуальной машине:

  1. cd / vagrant
  2. git clone

Дайте ей завершиться, и у вас будет 64-битная установка Git-контроляВаш репозиторий на Windows.

1 голос
/ 11 января 2012

Ни в коем случае НЕ устанавливайте git cygwin.Это медленно до смерти .Я собираюсь попробовать msysgit, надеясь на лучшую производительность.

1 голос
/ 04 декабря 2011

Возможно, вы путаете git инструмент с git-репозиториями.msysgit и cygwin git предоставляют инструменты, репозитории могут существовать независимо от наличия git бинарных файлов.

1 - Да.msysgit - это реализация git, которая использует MSYS и имеет более высокую производительность, чем Cygwin git.В msysgit также есть исполняемые файлы командной строки git.exe.msysgit не будет зависеть от других вещей, и вы можете запускать его из обычного cmd.

Git Cygwin будет зависеть от системы Cygwin и будет медленным по сравнению с msysgit.

Вы можете, однако, установить оба, но если вы не используете cygwin для чего-то другого, нет необходимости устанавливать его только для git.Я настоятельно рекомендую msysgit здесь.

2 - git - это git, вы можете использовать msysgit или cygwin git для тех же репозиториев, но будьте осторожны с несоответствиями версий (например, если вы используете msysgit 1.7.8 и cygwin git1,6).Я не думаю, что это большая проблема, но у меня никогда не было установлено несколько версий git.

edit:

3 - msysgit portable означает, что вы можете носить msysgit на чем-то вроде флешки.

Дополнительно:

Возможно, вы захотите попробовать TortoiseGit .Это графический интерфейс для git, он предоставляет вам контекстные меню для работы с git в Windows Explorer.Вам необходимо установить msysgit перед установкой TortoiseGit.

...