Msysgit на окнах - что мне следует знать, если таковые имеются?
Это связано с другим вопросом который я задал в последнее время.
При установке msysgit установщик представляет 3 варианта, относящихся к системному пути:
-
Никогда не меняйте среду Windows. С помощью этой опции вы должны использовать оболочку "bash" для работы с git.
-
Добавьте каталог git\bin в переменную среды PATH, но без переопределения некоторых встроенных инструментов Windows. Член stackoverflow-ian Gabe Moothart сказал мне в комментарии, что этот параметр сделает некоторые операции git неудачными! Что это за операции? Должен ли я беспокоиться о них?
-
То же, что и 2, но переопределите некоторые системные инструменты по умолчанию. Что это за инструменты? Какие части окон зависят от них? и это будет больно на практике?
Другая проблема пришла мне на ум, не связанная с системой PATH.
Что делать, если у меня есть символические ссылки и жесткие ссылки внутри моего каталога проектов? Знает ли git, как с этим справиться? или, будет ли он страдать от бесконечной рекурсии, если, скажем, структура каталогов была такой, что какая-то папка была фактически символической ссылкой на одного из ее родителей?
Ответы
Ответ 1
Вы получаете bash
независимо от того, какой вариант вы выбираете, последние параметры просто добавляют методы для использования Git вне его.
Для последних опций msysgit добавляет сборки Windows общих утилит Linux к PATH
. Это включает find
, kill
и sort
, а также cp
, ls
, rm
и около 20-30 других.
Проблема с первым 3 (и аналогичным) заключается в том, что они существуют в обеих ОС и работают по-разному в каждом.
Не очень тяжелое испытание, если вы знаете, какой из них вы будете использовать, но любые приложения, разработанные в ожидании одного, и получение другого, наверняка подтолкнут.
Чтобы предотвратить конфликт, при работе Git, как и ожидалось, вы можете создать простой пакет script, который настраивает PATH
только для сеанса. (например, readygit.bat
)
@echo off
setlocal
set PATH=C:\Git\bin;%PATH%
cmd
Отрегулируйте C:\Git\bin
соответственно. Но просто запустите это и используйте Git в cmd
.
С этим вы можете использовать опцию установки 3 и безопасно удалить C:\Git\bin
из вашей системы PATH
, удалив любую путаницу для приложений Windows, не запутав Git.
В настоящее время я использую аналогичные script с GnuWin приложениями, включая find
.
Ответ 2
Вы можете знать, что:
-
Все команды git еще не существуют. В MSysGit1.6.2 в начале марта 2009 года: archimport, cvsexportcommit, cvsimport, cvsserver, filter-branch, instaweb, send-email и shell.)
-
До MSysGit1.6.2, git -svn был не там ( теперь).
Проблема заключалась в git -svn необходимых привязках perversion perl, и вы можете создавать их только как модули с динамической загрузкой. И MSysGit имел версию perl, которая не поддерживала динамически загружаемые модули.
-
Все подробности о MSysGit лучше всего объясняются в MSysGitHerald Github wiki
Ответ 3
В окнах (это не проблема для других систем, по моему очень скромному мнению...), вы должны быть ОЧЕНЬ осведомлены о проблемах crlf и обратите внимание, что (если они не изменили это в самой последней версии из Git, которые, как я полагаю, они могут иметь - или если вы используете очень старую версию Git), autocrlf включен по умолчанию, в отличие от всех других установок git.
Также обратите внимание, что если вы не используете самую последнюю версию msysgit, скоро выйдете на этой неделе, если я правильно вернусь из списка рассылки, размер вашего репозитория не может превышать 2 ГБ, итоговый.
Кроме того, Windows является нечувствительной к регистру, но иногда/сохраняется в случае необходимости - помните об этом! (Это не путает git необязательно, но может и запутать пользователя репо git).
Наконец, git существенно медленнее в окнах, чем на linux, хотя он (в моем ограниченном опыте) быстрее, чем альтернативы.
Теперь, в отношении пути...
Если я ошибаюсь, вы должны быть в состоянии просто убедиться, что главный двоичный файл git находится в пути - и этот двоичный код должен затем позаботиться о ссылках на другие компоненты git... Но у меня нет испытал это.
Ответ 4
Установщик MSYS Git предлагает вариант 2, если вы планируете запустить Git из приглашения cygwin. Окружение cygwin гарантирует, что зависимости Git находятся в вашем PATH. Если вы выберете эту опцию, но затем вызовите Git из командной строки Windows, все утилиты командной строки unix-y, на которые опирается Git, не будут найдены. IIRC, Git сам частично реализован как bash скрипты. Я не знаю, какие операции не удастся, но я не думаю, что Git будет использоваться таким образом.
У меня нет списка системных инструментов, которые переопределяет опция 3 (установщик упоминает find.exe), но это повлияет только на вас, если вы - пакетный script ниндзя. В командной строке find
теперь будет ссылаться на утилиту unix этого имени, а не на exe, которая поставляется с окнами. Это никоим образом не вредит окнам.
Просто запустите ножницами и выберите вариант 3: -)
Ответ 5
Когда вы используете Windows GUI для Windows, и вы создаете свой первый репозиторий, не вводите имя ".git" для каталога репозитория. (Который он затем создаст, а затем создаст еще одну .git-папку под ним, когда вы, наконец, подумаете, чтобы посмотреть там). Перейдите к папке с вашими источниками в ней и просто выберите эту папку! Каталог репозитория ".get" будет создан для вас.
Затем вы видите файлы в неустановленных изменениях и, щелкнув значки маленьких страниц рядом с именами файлов, переместите их в поэтапные изменения.
И определенно запустите ножницы и выберите вариант 3. Никто не использует kill, sort или find больше из строки окон командной строки.