J'utilise msysgit 1.7.7.1 sous Windows. Je reçois une erreur lors de l'utilisation de git diff
. Qu'est-ce qui cause cela? N'y a-t-il pas d'outil diff inclus dans msysgit? Que devrais-je faire?
AVERTISSEMENT: le terminal n'est pas entièrement fonctionnel
Pour Git Bash, cela peut être corrigé en ajoutant la ligne suivante à ~/.bashrc:
export TERM=cygwin
-ou-
export TERM=msys
Le premier semble être l'original de git pour Windows, le second une forme connue et populaire pour "guérir" également.
Le problème peut être provoqué si un autre programme (comme par exemple Strawberry Perl ) définit les variables d'environnement système TERM
.
Si vous rencontrez des problèmes dans cmd.exe, par exemple, consultez l'avertissement ici:
Ensuite, définissez simplement vos variables d'environnement et incluez TERM = msys. Après cela, chaque fois que vous ouvrez un cmd.exe, votre variable sera définie correctement.
MAINTENANT, VOUS DEVEZ REDÉMARRER VOTRE Shell (CMD.EXE). Exécutez-en un nouveau. Et à partir de là, vous ne devriez plus avoir de problèmes. Encore:
Les réponses ci-dessus n'ont pas été entièrement fonctionnelles pour moi, alors j'ai fait: Ajouter
export TERM=msys
à "[githome]/etc/profile" en haut mais il n'a fait des changements que pour git bash. J'ai ensuite ajouté
@set TERM=msys
à "[githome] /cmd/git.cmd" après @setlocal (j'ai installé seulement git run à partir de la ligne de commande). Cette décision n'est peut-être pas vraiment bonne, mais elle fonctionne pour moi et il n'y a pas d'avertissements terminaux. (J'utilise la version 1.7.10.msysgit.1 de git).
La réponse peut être trouvée ici , dans laquelle l'auteur de la solution affirme que:
la variable d'environnement
TERM
a été définie surdumb
c'était au lieu de
TERM=cygwin
Vous pouvez changer cela en
TERM=msys
pour résoudre le problème actuel.
Je travaille en PowerShell et j'ai l'exécutable git directement sur mon chemin.
Aucune des réponses suggérées n'a fonctionné, mais j'ai trouvé une solution qui fonctionne pour moi.
J'ai ajouté une ligne dans mon profil PowerShell:
$env:TERM="msys"
Ce qui a résolu le problème pour moi.
Une solution rapide et sale dans mon cas s'est avérée être d'utiliser le --no-pager
option.
Par défaut, certaines commandes git (comme log
) utiliseront un pager comme less
si elles s'attendent à ce que la sortie soit longue. Les téléavertisseurs nécessitent des choses comme faire défiler le texte vers le haut et vers le bas avec les touches fléchées, ce qui parfois ne fonctionne pas si les hypothèses sur le type de terminal sur lequel vous vous trouvez sont erronées (c'est ce que signifie le "pas entièrement fonctionnel").
Si vous savez à l'avance que votre sortie sera courte, ou si vous voulez simplement la transférer vers le terminal et laisser le défilement jusqu'à votre programme de terminal, vous pouvez ignorer cela et ne pas utiliser de téléavertisseur du tout, par exemple:
git --no-pager log
Si quelqu'un obtient ce bash de lancement de Git Extensions, vérifiez le paramètre pour Path to linux tools...
. Le mien était réglé sur C:\cygwin
. Le changer en C:\Program Files (x86)\Git\bin\
l'a corrigé pour moi. Je n'ai pas eu à définir la variable TERM pour lancer bash de cette façon.