msysgit на windows - что я должен знать, если таковые имеются? - PullRequest
40 голосов
/ 08 марта 2009

Это связано с другим вопросом, который я недавно задал .

При установке msysgit программа установки предлагает 3 варианта, связанных с системным путем:

  1. Никогда не меняйте среду Windows. С этой опцией вы должны использовать оболочку "bash" для работы с git.

  2. Добавьте каталог git \ bin в переменную окружения PATH, но не переопределяя некоторые встроенные инструменты Windows. Сотрудник stackoverflow-ian Gabe Moothart сказал мне в комментарии , что эта опция приведет к сбою некоторых операций git! Каковы эти операции? Должен ли я беспокоиться о них?

  3. То же, что 2, но переопределяет некоторые системные инструменты по умолчанию. Что это за инструменты? Какие части окон зависят от них? и повредит ли это на практике?

Мне пришла в голову еще одна проблема, не связанная с системой PATH.

Что если у меня в каталоге проектов есть символические ссылки и жесткие ссылки? Git знает, как с этим бороться? или он будет страдать от бесконечной рекурсии, если, скажем, структура каталогов была такой, что какая-то папка была символической ссылкой на одного из ее родителей?

Ответы [ 5 ]

44 голосов
/ 15 марта 2009

Вы получаете 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.

9 голосов
/ 15 марта 2009

Вы можете знать, что:

  • Все команды 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 wiki

3 голосов
/ 09 марта 2009

В Windows (это не проблема для других систем, по моему скромному мнению ...), вы должны ОЧЕНЬ знать о проблемах crlf и помните, что (если они не изменили это в самой последней версии) Git, который, я думаю, они могут иметь - или если вы используете очень старую версию Git), autocrlf включен по умолчанию, в отличие от всех других установок git.

Также обратите внимание, что если вы не используете самую последнюю версию msysgit, скоро я выйду на этой неделе, если я правильно вспомню из списка рассылки, размер вашего хранилища не может превышать 2 ГБ, всего.

Кроме того, Windows странно нечувствительна к регистру, но / иногда / сохраняет регистр - имейте это в виду! (Это не смущает git по необходимости, но может и смущает пользователя git-репо).

Наконец, git существенно медленнее в Windows, чем в Linux, хотя (по моему ограниченному опыту) быстрее, чем альтернативы.

Теперь о пути ...

Если я не ошибаюсь, вы должны быть в состоянии просто убедиться, что основной двоичный файл git находится в пути - и этот двоичный файл должен позаботиться о ссылках на другие компоненты git ... Но я не проверял это.

2 голосов
/ 10 марта 2009

Установщик 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: -)

0 голосов
/ 22 октября 2009

Когда вы используете Windows GUI в Windows и создаете свой самый первый репозиторий, не вводите имя «.git» для каталога репозитория. (Который он затем создаст, а затем создаст другую папку .git под ним, когда вы, наконец, подумаете о том, чтобы посмотреть туда). Перейдите к папке с вашими источниками в ней и - просто выберите эту папку! Каталог репозитория ".get" будет создан для вас.

Затем вы увидите файлы с вашими неустановленными изменениями и, щелкнув маленькие значки страниц рядом с именами файлов, переместите их в поэтапные изменения.

И определенно бегите с ножницами и выберите опцию 3. Никто больше не использует kill, sort или find из командной строки.

...