web-dev-qa-db-fra.com

Git Bash (menthe) est extrêmement lent sous Windows 10

J'ai installé Git sous Windows il y a quelques mois . Cela a bien fonctionné pendant un certain temps. Mais maintenant, ça roule si lentement.

La commande git status prend 7 secondes pour s'exécuter et git stash prend plusieurs minutes pour le stockage (même s'il n'y a rien à cacher). De plus, j'aimerais souligner que git status imprime le résultat instantanément, mais je ne peux pas entrer de nouvelle commande pendant quelques secondes, comme indiqué dans l'image ci-dessous.

The screen is stuck like this for 7 seconds

J'ai essayé de surfer sur le net pour trouver des solutions à mon problème, comme this , this , etc., mais aucune de ces solutions n'a fonctionné.

PS: J'utilise un antivirus Windows Defender, et c'est PAS faire mon Bash lent. En outre, cmd prend plus de temps pour exécuter les commandes git tandis que git bash prend plus de temps pour exécuter une commande.


Mise à jour: Je suis passé à Ubuntu et par conséquent, je n'utilise pas Windows pour le moment. Je ne peux donc absolument pas vérifier si l’une des solutions fonctionne pour moi. J'accepte la réponse fournie par @pschild, qui reçoit le plus grand nombre de votes positifs et semble avoir fonctionné pour de nombreuses personnes.

55
Rohan Bhatia

J'ai récemment rencontré exactement le même problème. Après avoir essayé tous les conseils de ce fil et de nombreux autres, j'ai finalement trouvé une solution ici , respectivement dans le problème lié ici .

Désactiver le pilote graphique AMD Radeon dans le gestionnaire de périphériques Windows et passer aux graphiques Intel HD intégrés fonctionnait pour moi - pour une raison quelconque.

J'espère que ça t'as aidé!

Dans mon cas, j'ai trouvé sh.exe Shell plus rapide que bash.exe. Vous pouvez trouver sh.exe dans git_install_dir/bin.

J'espère que cela aidera les gens à avoir ce problème sans avoir intégré les graphiques Intel HD!

49
pschild

Pour moi, la solution consistait à définir la variable HOME dans mon répertoire utilisateur (selon this answer ). Pour ce faire (au moins sous Windows 7):

  1. Faites un clic droit sur "Ordinateur" dans l'explorateur de fichiers.
  2. Ouvrez les paramètres système avancés.
  3. Variables d'environnement ouvert
  4. Sous Variables système, cliquez sur "Nouveau ...".
  5. Entrez "HOME" pour le nom de la variable et le chemin de votre répertoire utilisateur pour la valeur (par exemple "C:\Users\jdoe").

Voir aussi les réponses à cette question connexe .

27
PaulrBear

Réessayez avec:

  • le le dernier Git pour Windows vous pouvez trouver, comme PortableGit-2.12.1-64-bit.7z.exe (décompressez-le où vous voulez, sans configuration)
  • puis dans une session CMD, configurez votre PATH avec:

    _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\
    _
  • définir votre HOME dans cette même session CMD

    _set HOME=%USERPROFILE%
    _
  • Enfin, tapez bash et voyez si l’opération Git est toujours lente.

7
VonC

J’ai eu le même problème une fois et j’ai trouvé que le problème pour moi était avec __git_ps1, une variable qui inclut le nom de la branche comme une information de statut, l’état de la tête détachée, dans le répertoire git, dans un référentiel nu, dans cherry picking ou rebasing ou fusion.

Afin d'accélérer votre git bash, allez dans le profil $ GitHome\etc\et commentez le si-alors où __git_ps1 is a été ajouté à PS1.

Quoi qu'il en soit, les informations que vous commentez sont très utiles, surtout si vous êtes au début avec GIT. Voici une version plus rapide, trouvée sur Internet et utilisée par moi avec beaucoup de succès sur mon système:

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

PS1='\[\033]0;$MSYSTEM:\w\007                                                                
\033[32m\]\u@\h \[\033[33m\w$(fast_git_ps1)\033[0m\]                                         
$ '     
5
rakwaht

En réponse à Lafexlos 's bounty :

Désactiver le pilote AMD Radeon a résolu mon problème, mais je me demande vraiment pourquoi il en est partie.
Apprécierait une réponse qui se concentre sur cela.

Quant à pourquoi:

Issue 107 rapports.

Activer l'interface graphique des paramètres de Radeon et cliquer sur quelque chose en attendant l'invite bash libère immédiatement quelque chose et le fait apparaître - bizarre.

AMD a été contacté mais aucune réponse ...

Ceci rapports de projet :

Mais toute la sortie graphique (terminal) doit être affichée via ces pilotes.
Ils (les chauffeurs) s’impliquent dans toutes les parties du système avec des interruptions et des interruptions cachées, et Dieu sait quoi. Des frissons ..

Issue 1129 ajoute:

À partir de Windows 7 (peut-être de Vista?), La console pouvait s’afficher par le biais de DirectWrite, construit sur Direct3D, fortement dépendant de l’implémentation des pilotes de l’API DirectX.

En tant qu'ancien employé de NVIDIA ayant travaillé directement sur nvd3dum, nvwgf2umx et nvapi, je peux vous dire que nous étions plutôt sceptiques quant à la sagesse de cette décision.
Semble que la DMLA aurait dû être plus sceptique, peut-être que la qualité de leurs pilotes aurait été meilleure.

5
VonC

Le même problème se posait sous Windows 7 et Windows 10, lors de l'utilisation de git bash, l'exécution de toute commande exécutée prendrait beaucoup de temps. Enfin, après de nombreux essais, nous avons découvert que ce problème était dû au fait que je n’exécutais pas mon git bash exe en tant qu’administrateur ,

Pas

  1. Faites un clic droit sur Git Bash Exe.
  2. cliquez sur 'Exécuter en tant qu'administrateur'
  3. tapez des commandes comme cd/c /

j'espère que cela t'aides!!!!

3
Pramod C V

Votre chemin est plein de bric-à-brac? Des commandes simples prenaient 20 secondes ou plus pour moi parfois jusqu'à ce que je supprime des choses inutiles de mon CHEMIN.

Windows: echo% PATH%

Recherchez "modifier les variables d'environnement" pour changer.

Autre: echo $ PATH

2
Philip Rego

L'ajout de l'exclusion de processus pour bash.exe, cmd.exe et conhost.exe dans la liste des exclusions de Windows Defender a apparemment résolu le problème pour moi sous Windows 10 64 bits.

1
mark

J'ai un problème similaire, mais seulement lorsque j'ai exécuté git bash en tant qu'utilisateur normal, lorsque j'ai démarré git bash en tant qu'administrateur, toutes les commandes étaient très rapides.

Dans mon cas, il est apparu que le problème était dû à l'antivirus F-Secure. J'ai ajouté le répertoire contenant git.exe à la liste des répertoires exclus (exclus de l'analyse) et le problème a été résolu pour moi.

Comment exclure un répertoire: https://community.f-secure.com/t5/Business/Excluding-objects-from-Real-Time/ta-p/6601

1
csharpfolk

Avertissement: pas une solution. Mais une solution rapide.

Pour une raison quelconque, après la mise à jour de mon ordinateur - je n'avais pas Git bash sur mon ordinateur, je devais retélécharger le nouveau 2.19.2.windows.1 et le même problème avec chaque exécution prenant entre 5 et 7 secondes.

Je n'ai pas eu le temps d'examiner tous les liens et de désactiver les pilotes graphiques. Mais Git Shell était installé avec Github sur mon ordinateur et je l’ai récupérée (Windows PowerShell) et je pouvais y exécuter tout ce dont j'avais besoin immédiatement.

0
kdo53