Я люблю git и постоянно использую его в OS X дома. На работе мы используем svn в Windows, но хотим перейти на git, как только инструменты полностью созреют (не только TortoiseGit , но и что-то вроде действительно хорошей интеграции Visual Studio, предоставляемой VisualSVN ). Но я отвлекся ...
Я недавно установил msysgit на свой компьютер с Windows 7, и при использовании включенной версии bash он ужасно медленный. И не только операции git; clear
занимает около пяти секунд . АААА!
Кто-нибудь сталкивался с подобной проблемой?
Изменить : похоже, что msysgit не очень хорошо работает с UAC и может быть просто крошечным упущением в дизайне, возникшим в результате разработки на XP или запуска Vista или 7 с отключенным UAC; запуск Git Bash с использованием Run as administrator
результатов с молниеносной скоростью, которую я вижу с OS X (или на 7 после запуска Git Bash без сетевого подключения - см. ответ @Gauthier).
Изменить 2 : А-ХА! Смотрите мой ответ.
Ответы:
Вы можете значительно ускорить Git в Windows, выполнив три команды, чтобы установить некоторые параметры конфигурации:
Ноты:
core.preloadindex
выполняет операции файловой системы параллельно, чтобы скрыть задержку (обновление: включено по умолчанию в git 2.1)core.fscache
устраняет проблемы с UAC, поэтому вам не нужно запускать Git от имени администратора (обновление: включено по умолчанию в Git для Windows 2.8)gc.auto
минимизирует количество файлов в .git /источник
git config --global core.fscache true
ничего не сделал для меня; однакоgit config core.fscache true
добился своего. Согласно этому , это потому, что core.fscache - это настройка для каждого репо.fscache
только как настройка для каждого репо. Глобальные настройки применяются ко всем репозиториям на машине, если они не переопределены настройками репо.Решение медлительность на Vista , или 7 , кажется, работает Git Bash , используя
Run as administrator
(или отключение контроля учетных записей для Git Bash ярлык ... или отключить UAC полностью ). Разница в том, что день и ночь, и использовать git на 7 снова здорово.Похоже, это связано с известной проблемой, и, как я предполагал, частично ответственна XP как среда разработки для msysgit .
источник
ls
в практически пустом каталоге)Для меня проблема заключалась в использовании __git_ps1 в приглашении оболочки - я думаю, из-за медленного доступа к диску в msysgit.
Решением было удалить $ (__ git_ps1) из строк PS1 = ... в / etc / profile
Быстрая проверка, применимо ли это решение: в оболочке git введите export PS1 = '$' и проверьте скорость ваших операций.
источник
__git_ps1
активным, если отключить SHOWDIRTYSTATE и / или SHOWUNTRACKEDFILES параметров см stackoverflow.com/a/4203968/321973Пробовал почти все советы здесь (включая один из моего другого ответа) на новой машине, но они не сработали, Git все еще медленный, черт возьми.
Затем я взглянул на программное обеспечение для поиска вирусов (которое было предварительно установлено): я отключил сканирование в реальном времени McAfee Security Center , и теперь presto: git работает быстро! Время, необходимое для "git svn rebase", упало с 30 до 5 (!).
Я надеюсь, что это поможет другим людям, у которых все еще есть проблемы с медленным Git в Windows, я потерял часы, выясняя это.
источник
Увы, «Запуск от имени администратора» у меня не сработал, но, как обнаружил Кевин Л., отключение сетевого адаптера, запуск git bash, а затем повторное подключение работали нормально. Поэтому я завернул это в пакетный скрипт и поместил ярлык в меню «Пуск», помеченный как запуск от имени администратора:
Работает приятно, пока я помню, что моя сеть на мгновение отключилась.
(Win 7 Professional SP1, версия Git 1.7.8-preview20111206)
источник
У моего коллеги было такое поведение при запуске Outlook. Пытаться убить прогноз и снова протестировать.
Вы также можете попробовать протестировать:
источник
Мы обнаружили, что при работе с определенными учетными записями пользователей отдельные экземпляры git.exe блокируются при вызове
WaitForSingleObject()
, поэтому одновременно может эффективно выполняться только одна операция git.exe. Изменение учетной записи пользователя помогло обойти эту проблему.Подробности здесь: https://stackoverflow.com/a/13054022
источник
У меня есть MacAffee, и я говорю ему исключить каталог .git и все подкаталоги из сканирования в реальном времени, и это решает проблему с производительностью.
источник
Как найдено в этом выпуске , работа с отключенной виртуализацией UAC (нет необходимости полностью отключать UAC) имеет большое значение.
Эта почта объясняется, как его отключить (см. Внизу сообщения, только один параметр реестра).
В одном (большом) репозитории SVN, к которому я подключаюсь, внесение только вышеуказанного изменения снизило время, необходимое для "git svn rebase", с 15 до 5 секунд, что в 3 раза больше.
источник
Альтернативой возиться с Windows 7 UAC может быть установка mysysgit вне папки Program Files. Например, вместо «C: \ Program Files (x86) \ Git» попробуйте установить в «C: \ git»
Я безрезультатно пытался возиться с элементами управления «Запуск от имени администратора» и UAC, но сдался и начал новую установку. Раньше я получал максимум 15 КБ / с, но теперь он превышает 60 КБ / с.
источник
Если отключение UAC не улучшает производительность, попробуйте отключить драйвер luafv. Это сработало для меня после того, как я попробовал почти все на этой странице и пару похожих вопросов. Git превратился из необычно медленного в довольно приличный.
Откройте regedit и найдите раздел реестра.
Измените значение
Start
с 2 на 4.Я нашел подробности о том, как отключить
luafv
здесь . Обратите внимание, что я лично не знаю, чтоluafv
есть или делает. На этой странице даются различные предупреждения о плохих вещах, которые могут произойти, если вы ее выключите, к чему, вероятно, следует отнестись серьезно.РЕДАКТИРОВАТЬ: в комментарии ниже указано, что я понял это неправильно (ссылка указывает на правильную сторону). Сейчас это исправлено. Извините людей, чьи реестры я разгромил :)
источник
Я просто устранял это какое-то время, и мне было сложно определить источник проблемы. В итоге я обнаружил две вещи, которые оказали огромное влияние:
источник
Проблема здесь может заключаться в завершении bash, если оно включено, что немного медленнее в Windows, чем в Linux.
Попробуйте установить для переменной PS1 что-нибудь простое, например «$», и посмотрите, ускорит ли это процесс. Если это так, имейте в виду, что в последних версиях git-версий были некоторые оптимизации для завершения bash. Возможно, вам нужно обновить.
источник
Это сработало для меня. Не ожидайте, что это будет универсальное решение.
Проверьте переменную окружения $ HOME в bash и windows. Если он указывает на учетную запись пользователя, проверьте профиль / разрешения Windows пользователя. Измените соответственно учетную запись пользователя или $ HOME.
источник
Я столкнулся с той же проблемой при запуске git для Windows (msysgit) в Windows 7 x64 в качестве ограниченной учетной записи в течение некоторого времени. Из того, что я читал здесь и в других местах, общей темой, похоже, является отсутствие административных привилегий и / или UAC. Поскольку в моей системе UAC отключен, объяснение, что он пытается что-то записать / удалить в каталоге программных файлов, имеет для меня наибольший смысл.
В любом случае я решил свою проблему, установив переносную версию git 1.8 с помощью zipinstaller. Обратите внимание, что мне пришлось распаковать файл дистрибутива .7z и перепаковать его как zip, чтобы программа zipinstaller работала. Мне также пришлось вручную добавить этот каталог к моему системному пути.
Спектакль сейчас в порядке. Несмотря на то, что он установлен в каталоге Program Files (x86), для которого у меня нет разрешений как у ограниченного пользователя, похоже, что он не страдает той же проблемой. Я приписываю это либо тому факту, что портативная версия немного более консервативна в том, где она записывает / удаляет файлы, что, вероятно, так и есть, либо обновлению с 1.7 до 1.8. Я не буду пытаться определить, какая из них является причиной, достаточно сказать, что сейчас она работает намного лучше.
источник
Вы можете попробовать удалить msysgit, перезапустить Windows, установить последнюю версию msysgit. Похоже, это помогло мне. Я нашел это предложение здесь:
https://stackoverflow.com/a/4506192/1413941
РЕДАКТИРОВАТЬ
PS У меня уже был отключен UAC, прежде чем я столкнулся с медленными проблемами Git, поэтому я не знаю, требуется ли отключение UAC или нет, чтобы Git работал быстро.
источник
Как уже отмечалось, лучшим решением является запуск от имени администратора. Однако еще один вариант сделать git status быстрым, по крайней мере, - trustctime = false . До этого git status занимал около 30 секунд, а после этого то же количество, что и в выводе - потребовалось X секунд, чтобы ...
источник
Вы также можете существенно повысить производительность, изменив следующую конфигурацию git:
При запуске простой
git status
команды в Windows 7 x64 моему компьютеру потребовалось более 30 секунд для запуска. После того, как эта опция была определена, команда выполняется немедленно.Активация собственной трассировки Git, как описано на следующей странице, помогла мне найти источник проблемы, которая может отличаться в зависимости от вашей установки: https://github.com/msysgit/msysgit/wiki/Diagnosing-why-Git-is-so- медленный
источник
Вероятно, дело в подсказке, которая анализирует ваш репозиторий Git. Вы можете протестировать, выполнив «очистку» где-нибудь вне репозитория Git. И вы можете ускорить его, исправив git-completion.bash или играя с core.filemode.
Что касается интеграции Visual Studio: это открытый исходный код. Несправедливо ожидать, что другие будут работать на вас бесплатно.
Я также считаю довольно забавным не задать вопрос в списке рассылки msysGit, но теперь я отвлекся.
источник