Git Bash (mintty) работает очень медленно в ОС Windows 10

Я установил Git на мою Windows 10 пару месяцев назад. Некоторое время все работало нормально. Но сейчас он работает так медленно.

Выполнение команды git status занимает 7 секунд, а git stash занимает много минут для сохранения (даже если нечего хранить). Кроме того, я хотел бы отметить, что git status печатает результат мгновенно, но я не могу ввести новую команду в течение нескольких секунд, как показано на рисунке ниже.

The screen is stuck like this for 7 seconds

Я пытался найти в Интернете решения моей проблемы, такие как эта, эта и т.д., Но ни одна из них не сработала.

PS: я использую антивирус Windows Defender, и это не делает мой Bash медленным. Кроме того, cmd требует больше времени для выполнения команд git то время как git bash занимает больше времени для выполнения любой команды.


Обновление: я перешел на Ubuntu и, следовательно, в настоящее время я не использую Windows. Таким образом, я не могу проверить, работает ли какое-либо из решений для меня. Я принимаю ответ, предоставленный @pschild, так как он имеет наибольшее количество голосов и, похоже, работает для многих людей.

Ответ 1

Я недавно столкнулся с точно такой же проблемой. Перепробовав все советы из этой и многих других тем, я наконец нашел решение здесь, соответственно, в связанной проблеме здесь.

Отключение графического драйвера AMD Radeon в диспетчере устройств Windows и переключение на интегрированную графику Intel HD работало для меня - по любой причине.

Надеюсь, это поможет!

В моем случае я обнаружил, что оболочка sh.exe значительно быстрее, чем bash.exe. Вы можете найти sh.exe в git_install_dir/bin.

Надеюсь, что это помогает людям, имеющим эту проблему, только с интегрированной графикой Intel HD!

Ответ 2

Для меня решение заключалось в том, чтобы установить переменную HOME в мой каталог пользователя (за этот ответ). Для этого (по крайней мере, в Windows 7):

  1. Щелкните правой кнопкой мыши "Компьютер" в проводнике файлов.
  2. Откройте расширенные настройки системы.
  3. Переменные открытой среды
  4. В разделе "Системные переменные" нажмите "Создать...".
  5. Введите "HOME" для имени переменной и пути к вашему каталогу пользователя для значения (например, "C:\Users\jdoe").

См. Также ответы на этот связанный вопрос.

Ответ 3

Попробуйте еще раз с:

  • последнюю PortableGit-2.12.1-64-bit.7z.exe Git для Windows, которую вы можете найти, например PortableGit-2.12.1-64-bit.7z.exe (распакуйте ее куда угодно, без установки)
  • затем в сеансе CMD установите свой PATH с помощью:

    set G=c:\path\to\latest\git
    set PATH=%G%\bin;%G%\usr\bin;%G%\mingw64\bin
    set PATH=%PATH%;C:\windows\system32;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\
    
  • установить HOME в том же CMD сессии

    set HOME=%USERPROFILE%
    
  • Наконец, введите bash и посмотрите, все ли медленные операции Git.

Ответ 4

Однажды у меня была __git_ps1 и та же проблема, и я обнаружил, что проблема для меня была с __git_ps1, в основном переменной, включающей статус- __git_ps1 название ветки, состояние отдельной головы, в git-каталоге, в голой репо, в середине набора вишни или перезарядки или слияния.

Чтобы ускорить ваш git bash, перейдите в $ GitHome\etc\profile и закомментируйте if-then, где __git_ps1 is добавлен в PS1.

В любом случае информация, которую вы комментируете, весьма полезна, особенно если вы начинаете с GIT. Вот более быстрая версия, найденная в Интернете и используемая мной довольно успешно в моей системе:

fast_git_ps1 ()                                                                              
{                                                                                            
    printf -- "$(git branch 2>/dev/null | grep -e '\* ' | sed 's/^..\(.*\)/ {\1} /')"    
}                                                                                            

PS1='\[\033]0;$MSYSTEM:\w\007                                                                
\033[32m\]\[email protected]\h \[\033[33m\w$(fast_git_ps1)\033[0m\]                                         
$ '     

Ответ 5

В ответ на Lafexlos Баунти:

Отключение драйвера AMD Radeon решило мою проблему, но я действительно задаюсь вопросом, почему часть.
По достоинству оценит ответ, который будет сфокусирован на этом.

Что касается того, почему:

Выпуск 1070 отчетов.

Вывод графического интерфейса настроек Radeon и нажатие на что-то в ожидании подсказки bash немедленно высвобождает что-то и делает его видимым - странным.

AMD связалась, но ответа нет...

В этом проекте сообщается:

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

В выпуске 1129 добавлено:

Начиная с Windows 7 (возможно, Vista?) Консоль имела возможность отображать себя через DirectWrite, которая строится поверх Direct3D, что сильно зависит от реализаций драйверов DirectX API.

Как бывший сотрудник NVIDIA, который работал непосредственно на nvd3dum, nvwgf2umx и nvapi я могу сказать вам, что мы скептически относимся к мудрости этого решения.
Кажется, AMD должна была быть более скептичной, возможно, качество их драйверов было бы лучше.

Ответ 6

Ваша ПУТЬ полна мусора? Простые команды занимали иногда 20 секунд или больше, пока я не удалил ненужные вещи из моего PATH.

Windows: echo% PATH%

Найдите "изменить переменные среды" для изменения.

Другое: echo $ PATH

Ответ 7

У меня есть аналогичная проблема, но только когда я запускал git bash как обычный пользователь, когда я начал git bash в качестве администратора, все команды выполнялись очень быстро.

В моем случае выяснилось, что проблема была вызвана антивирусом F-Secure. Я добавил каталог, содержащий git.exe в список исключенных каталогов (исключенный из сканирования) и решил эту проблему для меня.

Как исключить каталог: https://community.f-secure.com/t5/Business/Excluding-objects-from-Real-Time/ta-p/66013

Ответ 8

Добавление исключения процесса для bash.exe, cmd.exe и conhost.exe в списке исключений Windows Defender, по-видимому, решило проблему для меня на Windows 10 64bit.

Ответ 9

У меня была такая же проблема в Windows 7 и Window 10, при использовании git bash любая команда, которую я запускал, займет значительное время. В конце концов, после многих испытаний, связанных с нарушением гласности, выяснилось, что проблема связана с тем, что я не запускал мой git bash exe в качестве администратора,

меры

  1. Щелкните правой кнопкой мыши на git bash exe.
  2. нажмите "запустить как администратор"
  3. введите команды типа cd/c/

надеюсь это поможет!!!!

Ответ 10

Отказ от ответственности: не исправление. Но быстрое обходное решение.

По какой-то причине после моего компьютера updated-- у меня не было Git bash на моем компьютере, поэтому мне пришлось перезагрузить новый файл 2.19.2.windows.1, и у меня была такая же проблема при каждом выполнении, составляющем 5-7 секунд.

У меня не было времени изучить все ссылки и отключить графические драйверы, а что нет. Но у меня была установлена оболочка Git с Github на моем компьютере, и я вытащил ее (Windows PowerShell), и я смог запустить все, что мне нужно было немедленно.