Использовать Cygwin или msysGit версию Git, или обе?

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

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

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

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

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

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

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

6 ответов

Решение

1) Если вы не используете cygwin для чего-либо другого и хотите использовать Git, используйте msysgit. Это обеспечивает хорошую интеграцию Git с Windows, и почти все инструменты с графическим интерфейсом - 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.

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

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

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

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

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

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

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

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

Если по какой-то неудачной судьбе вы имеете дело с 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. мерзкий клон

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

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

Вы можете сбить с толку 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 git 1.6). Я не думаю, что это большая проблема, но я никогда не устанавливал несколько версий git.

редактировать:

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

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

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

Другие вопросы по тегам