Windowsのgit diffが「ターミナルが完全に機能していない」と警告するのはなぜですか?


111

Windowsでmsysgit 1.7.7.1を使用しています。を使用するとエラーが発生しgit diffます。これは何が原因ですか?msysgitに含まれているdiffツールはありませんか?私は何をすべきか?

警告:端末が完全に機能していません



わかりました、まあmsysgitはgitを使用しています。それは一種の名前です。だから私は用語としてmsysを使ってそれに従いました、そしてそれはうまくいきました!説明を適切にフォーマットされた回答で投稿してください。
Portaljacker、2011年

PowerShellで実行:$ env:Term = "xterm"
アントンソラドイ

回答:


62

Git Bashの場合、これは〜/ .bashrcに次の行を追加することで修正できます。

export TERM=cygwin

-または-

export TERM=msys

1つ目はgit for windowsによるオリジナルのようで、2つ目は「癒す」ことでよく知られている形式です。

この問題は、他のプログラム(Strawberry Perlなど)がTERMシステム環境変数を設定している場合に発生する可能性があります。

http://code.google.com/p/msysgit/issues/detail?id=184


はい。ただし、gitのファイルツリーにはそのようなファイルはありません。他の答えは機能し、理にかなっています。
Portaljacker、2011年

1
@Portaljacker-どういう意味ですか git bashを閉じてもう一度開き、それがまだ機能するかどうかを確認しますか?
manojlds

4
うん、ウィンドウでsetまたはGUIを介して環境変数を設定する(他の回答に示されている詳細設定)の方法です。
cgp 2012

11
OPがbashを使用しているとOPが言っておらず、gitをbashから実行する必要がないため、この答えは満足のいくものではありません。個人的には、Windowsのコマンドプロンプトを使用しており、その環境で機能するソリューションが必要です。
David Grayson

7
@DavidGraysonスレッドネクロ、わかっていますが、Windowsコマンドプロンプトでを使用して同じことを行うことができますsetx TERM msysSETX(単なるSETとは対照的に)env変数をレジストリに書き込みます。
rossipedia 2013年

184

たとえば、cmd.exeに問題がある場合は、次の警告を参照してください。

TERMが正しく設定されていないCMD.EXE

次に、環境変数を設定し、TERM = msysを含めます。その後、cmd.exeを開くたびに、変数が正しく設定されます。

TERM環境変数を設定する方法

ここで、シェル(CMD.EXE)を再起動する必要があります。新しいものを実行するだけです。そしてそこから、あなたはもう問題はないはずです。再び:

正しいTERMが設定されたCMD.EXE


ええ、間違いなくそうです。私はビスタにいます、そしてそれはそれを完全に解決しました。テレボールありがとう!
Jコールモリソン

2
この問題がどこから来たのか、またはこのメッセージが何を意味しているのか?
Anthony Mastrean

7
@AnthonyMastreanは、ターミナルがターミナルウィンドウの別の場所への書き込みをサポートしていないことを意味します。Git diffは、ウィンドウ全体に書き込みを行います。たとえば、カーソルを適切な場所に配置するために100万のバックスペースを実行することなく、次の画面を書き込みます。
jwg 2013年

プログラムは変更されないため、実際の問題は端末サポートではありません。@ manojldsが指摘するように、TERM変数をいくつかの基本的な用語として定義する他のプログラムによってgit(正確にはそれより少ない)はばかげています。
albfan 14

2
Vagrantを使用している場合、この修正によりbashシェルで問題が発生します。たとえば、nanoは機能しなくなり、エラーが発生します: 'msys':不明なターミナルタイプ
Sirrah

16

上記の答えは私にとって完全に機能しなかったので、私はしました:追加

export TERM=msys 

「へ[githome] / etc / profileを一番上に」それだけのgit bashのために変更を加えました。次に追加しました

@set TERM=msys

@setlocalの後に " [githome] /cmd/git.cmd "を追加します(コマンドラインから実行するgitのみをインストールしました)。この決定は本当に良くないかもしれませんが、私にとってはうまくいき、最終的な警告はありません。(私はgitバージョン1.7.10.msysgit.1を使用しています)。


2
Windowsの場合、環境変数TERMをmsysに設定する必要がありました。これは、SETXを介して実行できます。
cgp 2012

14

答えはここにあります。ソリューションの作成者は次のように述べています。

環境変数TERMはに設定されましたdumb

代わりに

TERM=cygwin

あなたはそれを

TERM=msys

目の前の問題を解決します。


この回答はgitbashの現在のセッションでのみ機能することがわかりました。他の回答に変更する必要がありました。
Portaljacker、

6

私はPowerShellで作業していて、パスに直接git実行可能ファイルがあります。

提案された答えはどれもうまくいきませんでしたが、私にはうまくいく解決策を見つけました。

powershellプロファイルに行を追加しました:

$env:TERM="msys"

これで問題が解決しました。


これは、gitバージョン1.7.11.msysgit.1を使用している私にとってこれ以上問題ではないようです。$ env:TERM = "msys"を削除して、問題なくMercurialのカラー拡張を再度有効にすることができました。
John Weldon、

別の端末を使用する他のアプリケーションとの競合は、ここで環境変数を変更するのではなく、manojldsの回答に従ってTERMをGit Bash独自の.bashrcに設定する必要がある理由です。これはすべてのプログラムに影響します。
jwg 2013年

1
@jwg良い点ですが、私はいつもgitを使用しており、bashよりもpowershellを好みます。そのため、カラー出力を取得するためだけにbashを実行する必要がありました。
John Weldon 2013年

これを私の一般的なPowerShellプロファイルの代わりにcmder profile..ps1ファイルに追加しました。
gerrard00 2016

6

私の場合、迅速で汚い解決策は、--no-pagerオプションを使用することでした。

デフォルトでは、一部のgitコマンド(などlog)はless、出力が長くなることを期待する場合と同様に、ポケットベルを使用します。ポケットベルには、矢印キーを使用してテキストを上下にスクロールするようなものが必要です。これは、使用している端末の種類に関する想定が間違っている場合に機能しないことがあります(これは「完全に機能しない」という意味です)。

出力が短いことが事前にわかっている場合、または出力をターミナルにダンプして、スクロールをターミナルプログラムに任せたい場合は、これをオーバーライドして、ポケットベルをまったく使用しないようにすることができます。例:

git --no-pager log

0

誰かがGit Extensionsからこの起動bashを受け取った場合は、の設定を確認してくださいPath to linux tools...。鉱山はに設定されましたC:\cygwin。それをC:\Program Files (x86)\Git\bin\修正するために変更しました。この方法でbashを起動するためにTERM変数を設定する必要はありませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.