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 больше из строки окон командной строки.