msysgit в Windows — о чем мне следует знать, если таковое имеется?

StackOverflow https://stackoverflow.com/questions/623518

Вопрос

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

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

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

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

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

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

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

Это было полезно?

Решение

Вы получаете bash независимо от того, какую опцию вы выбрали, последние опции просто добавляют методы для использования Git вне его.

Для последних вариантов msysgit добавляет сборки Windows общих утилит Linux в PATH . Это включает в себя find , kill и sort , а также cp , ls , rm и около 20-30 других.

Проблема с первыми тремя (и аналогичными) заключается в том, что они существуют в обеих ОС и функционируют по-разному в каждой.

Не большое испытание, если вы знаете, какое из них вы будете использовать, но любые приложения, разработанные, ожидающие одно и получающие другое, наверняка приведут в восторг.

<Ч>

Чтобы предотвратить конфликт, хотя 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 приложениями, включая < сильный> <код> найти .

Другие советы

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

  • Все команды git все еще отсутствуют.В MSysGit1.6.2 в начале марта 2009 г.:Archimport, cvsexportcommit, cvsimport, cvsserver, filter-branch, instaweb, send-email и оболочка.)

  • До MSysGit1.6.2 git-svn был не там (сейчас).
    Проблема заключалась в том, что git-svn требовались привязки Perl Subversion, и вы могли создавать их только как динамически загружаемые модули.А у MSysGit была версия Perl, которая не поддерживала динамически загружаемые модули.

  • Все подробности о MSysGit лучше всего объяснены в их MSysGitHerald Гитхаб вики

В 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 из командной строки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top