web-dev-qa-db-ja.com

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

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

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

110
Portaljacker

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

59
manojlds

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

CMD.EXE without the TERM set correctly

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

How to set your TERM environment variable

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

CMD.EXE with the correct TERM set

184
teleball

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

export TERM=msys 

上部の "[githome]/etc/profile"に変更しましたが、git bashのみに変更を加えました。それから私は追加しました

@set TERM=msys

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

16
Anatoly R

答えは here にあります。ソリューションの作者は次のように主張しています:

環境変数TERMdumbに設定されました

代わりに

TERM=cygwin

それを変更できます

TERM=msys

手元の問題を解決します。

14
Mr_Spock

私はPowerShellで働いており、パスにgit実行可能ファイルを直接持っています。

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

私のPowerShellプロファイルに行を追加しました:

$env:TERM="msys"

それは私のために問題を修正しました。

6
John Weldon

私の場合の迅速で汚い解決策は、--no-pagerオプション。

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

出力が不足することを事前に知っている場合、または出力を端末にダンプして端末プログラムまでスクロールしたままにする場合は、これをオーバーライドして、ページャーをまったく使用しないでください:

git --no-pager log
4
Felix

誰かがこの起動bashをGit Extensionsから取得した場合は、_Path to linux tools..._の設定を確認してください。私のものは_C:\cygwin_に設定されました。 C:\Program Files (x86)\Git\bin\に変更すると、修正されました。この方法でbashを起動するためにTERM変数を設定する必要はありませんでした。

0
Clay