Использовать Cygwin или msysGit версию Git, или обе?
Я использую Windows 7, сегодня я впервые установил Cygwin, поэтому я поиграл с ним. Теперь я хочу начать использовать Git.
Из того, что я прочитал, msysGit позволит вам использовать графический интерфейс, а также добавляет правую кнопку мыши на папке / файле. Add to Git GUI
а также Add to GIT Bash
параметры контекстного меню.
В то же время, хотя я хотел бы использовать командную строку для выполнения некоторых вещей Git, но я думаю, что для начинающего Git было бы неплохо иметь контекстные меню и графический интерфейс.
Так что я застрял. Пара вопросов...
Если я установлю Git с msysGit, смогу ли я запустить командную строку для Git с Cygwin?
В одной книге говорилось, что вы можете установить обе версии Cygwin и msysGit it, если это так, работают ли они с одними и теми же файлами / репо или это похоже на наличие 2 отдельных репозиториев Git на каждый файл? Если это так, то это похоже на излишество.
Я также видел, что у 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:
- Установить Vagrant
- Установите VirtualBox
- Добавьте этот VagrantFile в пустую папку
- Настройте его на свои нужды
- В командной строке перейдите в новую папку и
- Выполните команду "vagrant up". Возьмите кофе, пока это не завершится.
- Далее выполните команду "vagrant ssh"
Теперь у вас есть виртуальная машина Linux с установленным 64-битным git. Далее в виртуальной машине:
- CD / Vagrant
- мерзкий клон
Дайте ему завершиться, и у вас будет 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.