2010-10-13 6 views
40

J'ai installé Git pour Windows (msysgit) et ça marchait bien ces derniers jours et aujourd'hui j'ai rencontré une erreur bizarre. Lors de l'émission d'une commande Git dans l'invite de commande Windows ou dans le Git Bash fourni avec msysgit, une ligne étrange ('END) apparaît et je ne peux plus émettre d'autres commandes.L'invite de commande Windows Git est bloquée pendant les commandes Git avec (END)

alt text

A ce stade, tout ce que je reçois sont système émet un bip.

Des idées?

Merci, P.

Répondre

68

Git veulent montrer plus d'un écran d'information pour vous, de le faire, il appelle le programme standard de téléavertisseur unix less. Tapez simplement q pour revenir à l'invite lorsque vous ne souhaitez plus naviguer dans la sortie.

  • j déplacer une ligne vers le bas
  • k déplacer une ligne vers le haut
  • <espace> déplacer une page vers le bas
  • b déplacer une page vers le haut
  • h affichez l'aide

Si vous souhaitez utiliser efficacement git, vous devez apprendre les outils de base Unix. Même si Git construit et fonctionne sur Windows, il s'agit d'un logiciel extraterrestre sur la plate-forme.

Si vous ne voulez pas less il suffit de le remplacer par un autre pager dans la configuration. Si vous ne voulez pas un téléavertisseur tout simplement utiliser cat:

git config --global --add core.pager cat 
+0

Merci pour les informations supplémentaires. – paperclip

+3

+1 Pour remplacer «less» par «cat». Pas que je veuille jamais faire ça! – Skilldrick

+0

Vous pouvez également utiliser 'more' au lieu de' less'. – dave1010

11

Appuyez sur q pour quitter le pager (qui est less en git par défaut).

+0

Est-il possible d'empêcher git de le faire? – paperclip

+2

@paperclip Pourquoi voudriez-vous? Très bientôt, vous aurez besoin de parcourir les résultats - c'est seulement maintenant que vous démarrez que vous obtenez seulement une page. Il suffit de s'habituer à appuyer sur 'q'. – Skilldrick

+0

Merci pour le conseil. – paperclip

9

J'ai d'abord rencontré cette question quand je cherchais la même chose; ne pas avoir à quitter la commande de journal. J'ai depuis trouvé la réponse que j'aime, donc même si c'est bien après la demande originale, j'ajouterai cette réponse pour fournir une solution additionnelle que je n'ai pas trouvée rapidement dans ma propre recherche.

D'autres ont indiqué pourquoi le (END) est présent - les résultats sont acheminés à travers un pager, un qui peut être configuré pour un pager différent.

Cependant, je ne veux parfois pas que cela s'arrête; parce que j'ai spécifié d'autres options qui font la limitation. J'ai trouvé que pour ce git has a global option--no-pager pour désactiver le pager quel que soit défini dans le fichier de configuration.

Cette option globale est sur la même commande git, est disponible pour tous les sous-commandes et est placé avant la sous-commande comme ceci:

git --no-pager log 
+0

Une note utile. Merci. – paperclip

1

Git utilise le « pager » appelé less, qui vous permet de faire défiler grâce à une grande quantité de sortie du programme facilement. Cependant, les paramètres par défaut sur Git pour Windows semblent être de pour que le téléavertisseur fonctionne même s'il y a moins d'un écran de sortie.

Voici le paramètre par défaut que j'avais avant, qui toujours montrer l'(END) et attendez pour vous frapper q avant de retourner à l'invite:

$ git config --get core.pager 
less -+F 

Vous pouvez modifier le comportement de sorte que less sera seulement continuer à courir (et prendre le contrôle du clavier) quand il y a plus d'un écran de sortie en changeant l'option à -F au lieu de -+F.

Fixer le téléavertisseur satanés avec

$ git config --global core.pager "less -F" 

(La syntaxe de l'option -+X moins est documentée pour réinitialiser l'option -X à son « défaut », bien que ce n'est pas le comportement que j'observé avec -+F depuis la suppression l'option était tout à fait équivalente à -F, et non -+F.)

Questions connexes