web-dev-qa-db-fra.com

Statut git qui ne répond pas, diff, ajouter (suspendu)

Les commandes git suivantes se bloquent (ne répondent pas) dans l'un de mes référentiels:

git status
git diff
git stash
git add

Le fait que je ne puisse pas git add m'amène à penser que la non-réponse n'est pas simplement due à de très gros fichiers. Puisque git stash se bloque également, je ne pense pas que ce soit simplement un problème de communication avec Origin.

git remote show Origin affiche l'URL distante attendue. Je travaille sur une branche et j'ai vérifié qu'elle n'a pas été renommée. (FWIW, l'Origin est hébergé sur bitbucket.)

Toutes les commandes ci-dessus répondent comme prévu dans un référentiel différent, donc ce n'est pas dû à la connexion Internet.

D'autres conseils pour résoudre ce problème?

15
yunque

Pour tout ce que ça vaut, essayez git fsck (selon l'un des commentaires) puis git gc. Lors de l'exécutiongit status et git commit, ils m'ont suspendu après avoir traité un certain nombre de fichiers; et l'exécution de ces commandes a résolu le problème. Je ne sais pas quelle commande a réellement résolu le problème.

4
Antoni

Il a répondu au bout de 15 minutes environ, et répond maintenant immédiatement sans délai.

Avec Git 2.20 (Q4 2018), vous pourrez au moins vérifier que git status fait quelque chose (au lieu de simplement y rester): il apprend à afficher une barre de progression lors de l'actualisation l'indice prend beaucoup de temps.

Voir commit ae9af12 (15 septembre 2018) par Nguyễn Thái Ngọc Duy (pclouds) .
(Fusionné par Junio ​​C Hamano - gitster - in commit 4d87b38 , 19 octobre 2018)

status: affiche la barre de progression si l'actualisation de l'index prend trop de temps

Le rafraîchissement de l'index est généralement très rapide, mais il peut parfois prendre du temps.

  • Cold cache en est un.
  • Ou copier un dépôt à un nouvel endroit (*).

Il est bon de montrer quelque chose pour informer l'utilisateur "git status "n'est pas suspendu, il est juste occupé à faire quelque chose.

(*) Dans ce cas, toutes les informations statistiques dans l'index deviennent invalides et git revient à ressasser tout le contenu du fichier pour voir s'il y a une différence entre la mise à jour des informations statistiques dans l'index. C'est assez cher. Même avec un dépôt aussi petit que git.git, cela prend 3 secondes.

4
VonC

Git peut être en train de construire un index de fichiers non suivis. Après avoir ajouté plusieurs milliers de nouveaux fichiers dans un référentiel fraîchement cloné, git status semble se bloquer pendant plus de 2 minutes, puis répond:

It took 139.67 seconds to enumerate untracked files. 'status -uno'
may speed it up, but you have to be careful not to forget to add
new files yourself (see 'git help status').

Si vous avez une situation similaire, envisagez de déplacer les fichiers non suivis hors du référentiel et confirmez que git status est à nouveau réactif.

0
abestern