msysgit на windows - что я должен знать, если таковые имеются?
Это связано с другим вопросом, который я задал недавно.
При установке msysgit программа установки предлагает 3 варианта, связанных с системным путем:
Никогда не меняйте среду Windows. С этой опцией вы должны использовать оболочку "bash" для работы с git.
Добавьте каталог git \bin в переменную окружения PATH, но не переопределяя некоторые встроенные инструменты Windows. Сотрудник stackru-ian Гейб Моутарт сказал мне в комментарии, что эта опция приведет к сбою некоторых операций git! Каковы эти операции? Должен ли я беспокоиться о них?
То же, что 2, но переопределяет некоторые системные инструменты по умолчанию. Что это за инструменты? Какие части окон зависят от них? и будет ли это больно на практике?
Еще одна проблема пришла мне в голову, не связанная с системой PATH.
Что если у меня есть символические ссылки и жесткие ссылки внутри моего каталога проекта? Git знает, как с этим бороться? или он будет страдать от бесконечной рекурсии, если, скажем, структура каталогов была такой, что какая-то папка была символической ссылкой на одного из ее родителей?
5 ответов
Ты получаешь bash
независимо от того, какую опцию вы выберете, последние опции просто добавляют методы для использования Git вне его.
Для последних вариантов, msysgit добавляет сборки Windows общих утилит Linux в PATH
, Это включает find
, kill
а также sort
, так же как cp
, ls
, rm
и около 20-30 других.
Проблема с первыми 3 (и аналогичными) состоит в том, что они существуют в обеих ОС и функционируют по-разному в каждой.
Не большое испытание, если вы знаете, какое из них вы будете использовать, но любые приложения, разработанные, ожидающие одно и получающие другое, наверняка приведут в восторг.
Чтобы предотвратить конфликт, хотя Git по-прежнему работает должным образом, вы можете создать простой пакетный скрипт, который корректирует 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.
В настоящее время я использую аналогичный скрипт с приложениями GnuWin, в том числе find
,
Вы можете знать, что:
Все команды git не все еще там. На MSysGit1.6.2 начало марта 2009 года: archimport, cvsexportcommit, cvsimport, cvsserver, filter-branch, instaweb, send-email и shell.)
До MSysGit1.6.2 git-svn там не было ( сейчас).
Проблема заключалась в том, что git-svn были нужны perl-привязки Subversion, и вы можете создавать их только как динамически загружаемые модули. И у MSysGit была версия на Perl, которая не поддерживала динамически загружаемые модули.Все подробности о MSysGit лучше всего объясняются в их викиMSysGitHerald Github
В Windows (это менее важно для других систем, по моему скромному мнению...), вы должны ОЧЕНЬ знать о проблемах crlf и помнить, что (если они не изменили это в самой последней версии Git, что, я думаю, они могут иметь - или если вы используете очень старую версию Git), autocrlf включен по умолчанию, в отличие от всех других установок git.
Также обратите внимание, что если вы не используете самую последнюю версию msysgit, скоро я выйду на этой неделе, если я правильно вспомню из списка рассылки, размер вашего хранилища не может превышать 2 ГБ, всего.
Кроме того, Windows странно нечувствительна к регистру, но / иногда / сохраняет регистр - имейте это в виду! (Это не смущает git по необходимости - но может и смущает пользователя git-репо).
Наконец, Git существенно медленнее в Windows, чем в Linux, хотя (по моему ограниченному опыту) быстрее, чем альтернативы.
Теперь о пути...
Если я не ошибаюсь, вы должны быть в состоянии просто убедиться, что основной двоичный файл git находится в пути - и этот двоичный файл должен затем позаботиться о ссылках на другие компоненты git... Но я не проверял это.
Установщик MSYS Git предлагает вариант 2, если вы собираетесь запускать git из приглашения cygwin. Среда cygwin гарантирует, что git-зависимости находятся в вашем PATH. Если вы выберете эту опцию, но затем вызовете git из командной строки Windows, все утилиты командной строки unix-y, на которые опирается git, не будут найдены. IIRC, сам git частично реализован как bash-скрипты. Я не знаю, какие операции потерпят неудачу, но я не думаю, что git можно будет использовать таким образом.
У меня нет списка системных инструментов, которые переопределяет опция 3 (установщик упоминает find.exe), но это повлияет на вас, только если вы ниндзя с пакетным скриптом. В командной строке find
теперь будет ссылаться на утилиту unix с таким именем, а не на exe, который поставляется с windows. Это никак не повредит самим окнам.
Просто бегите с ножницами и выберите вариант 3:-)
Когда вы используете Windows GUI в Windows и создаете свой самый первый репозиторий, не вводите имя ".git" для каталога репозитория. (Который он затем создаст, а затем создаст другую папку.git под ним, когда вы, наконец, подумаете о том, чтобы посмотреть туда). Перейдите к папке с вашими источниками в ней и - просто выберите эту папку! Каталог хранилища ".get" будет создан для вас.
Затем вы увидите файлы в ваших неустановленных изменениях и, нажав на маленькие значки страниц рядом с именами файлов, переместите их в поэтапные изменения.
И определенно запустите с ножницами и выберите опцию 3. Никто больше не использует kill, sort или find из командной строки.