为什么Windows上的git diff会提示“terminalfunction不全”?
我在Windows上使用msysgit 1.7.7.1 。 使用git diff
时出错。 这是什么原因造成的? msysgit中是否包含diff工具? 我该怎么办?
警告:端子function不全
对于Git Bash,可以通过在〜/ .bashrc中添加以下代码来解决这个问题:
export TERM=cygwin
-要么-
export TERM=msys
第一个似乎是通过Git的原始窗口,第二个stream行的已知forms“治疗”以及。
如果其他程序(如Strawberry Perl )设置TERM
系统环境variables,则可能会导致问题。
如果您在cmd.exe中遇到问题,请参阅此处的警告:
然后简单地设置你的环境variables,并包括TERM = msys。 之后,每次你打开一个cmd.exe,你的variables将被正确设置。
现在你必须重新启动你的shell (CMD.EXE)。 只要运行一个新的。 从那里,你应该没有更多的问题。 再次:
以上的答案没有完全为我工作,所以我做了:添加
export TERM=msys
到“ [githome] / etc / profile ”在顶部,但它只改变了git bash。 然后我补充说
@set TERM=msys
到“ [githome] /cmd/git.cmd ”后@setlocal(我只安装git从命令行运行)。 可能是这个决定不是真的好,但它适用于我,没有任何terminal警告。 (我使用git版本1.7.10.msysgit.1)。
答案可以在这里find,其中解决scheme的作者声称:
环境variables
TERM
被设置为dumb
而不是
TERM=cygwin
你可以改变它
TERM=msys
解决手头的问题。
我在PowerShell中工作,我有我的path直接在git可执行文件。
没有任何build议的答案工作,但我find了一个适合我的解决scheme。
我在PowerShellconfiguration文件中添加了一行:
$env:TERM="msys"
哪些问题解决了我的问题。
在我的情况下,一个快速和肮脏的解决scheme竟然是使用--no-pager
选项。
默认情况下,如果希望输出很长,那么一些git命令(如log
)会使用一个less
的寻呼机。 寻呼机需要使用箭头键上下滚动文本,如果假设你所使用的terminaltypes是错误的(这就是“不完全function”的意思),有时这种方式是行不通的。
如果你事先知道你的输出是短路的,或者你只是想把输出信息转储到terminal上而把滚动放到你的terminal程序中,你可以覆盖它而不是使用寻呼机,例如:
git --no-pager log
如果有人从Git扩展中得到这个启动bash,检查Path to linux tools...
的设置Path to linux tools...
我被设置为C:\cygwin
。 将其更改为C:\Program Files (x86)\Git\bin\
为我解决了这个问题。 我没有必要设置TERMvariables来启动bash这种方式。