すでにPythonを使っているものかと思ったのですが、そうでは無いのですね。ならば、恐れずに進んでしまえばいいかと思います。Git for Windowsは一度入れたらもう二度と入れられないというわけではありません。うまくいかなかったら、入れ直せば良いのです。二度手間かと思いますが、何が良いかというのはその時々によって変わります。自分にあったものは自分で試行錯誤しながら探していくしかないのです。
さて、まずはCUI環境について学んでおきましょう。GitはGUIのツール(Git for WindowsではGit GUIというのが入りますし、それ以外にもサードパーティーのツールやエディタ等から操作する等もあります)もありますが、基本的にはCUIで操作します。CUIというのはコマンドプロンプトとかそういうのです。そう、ただのコマンドプロンプトでもGitは使えます。Pythonも普通に使う場合はCUIからです。なので、CUIの使いやすさというのは、開発のしやすさに繋がる重要なものになってきます。
WindowsでのCUI環境と言えばコマンドプロンプト(cmd.exe)でした。コマンドプロンプト自体はユーザーと対話を行う機能であり、シェルと言われるものです。そして、実際のウィドウはWindowsにデフォルトで用意されているコンソール(コマンドプロンプトを起動したときの黒いウィンドウのこと)が使われます。このコマンドプロンプトとWindows10より前のコンソール(以下、レガシコンソールとします)がとても貧弱です。何に比べて貧弱かというと、LinuxやMacに標準で入っているBashやzshといったシェルと仮想端末(xtermやGOOME端末、Macのターミナル等)に比べてです。
貧弱と言っても、ただコマンドを実行するだけであれば十分使えます。GitもPythonも問題なく使えます。ただ、ヒストリ機能とか、フォントとか、便利なコマンドとか、パイプ処理とか、CUIだけで色々なことをしようとする不満が出てくるというものです。そのため、Microsoft自身やCygwinやMingw等を開発しているコミュニティー達はより便利なものを用意することにしました。
Microsfotはコマンドプロントとレガシコンソールの代わりに次のようなものを用意しました。
- シェル: PowerShell
- 端末環境: モダンコンソール (Windows 10から採用。最新のWindows 10ではこちらがデフォルトになっています)
上とは別に、コミュニティーの人々は次のようなものを用意しました。
- シェル: 移植版Bash (その他zsh等も移植されています)
- 端末環境: MinTTY (もともとはCygwin用です)
GitはもともとLinux用として開発されたこともあり、Bash等と相性が良いものでした。そこで、Git for Windowsでは、Git Bashの名でBash環境を用意しています。
ちょっと注意して欲しいのは、最初のコマンドプロンプトであっても、それこそ、PowerShellでもBashでもGitは問題なく使えると言うことです。ただ、コマンドプロンプトはコマンドプロンプトが貧弱すぎるため、CUIをメインに使用する場合はお勧めできるものでありません。ただそれだけの理由で、Git Bashが用意されているとも言えます。
ちょっと戻りましょう。PowerShellとBashのどちらが良いのかというのは、正直なところ私にはわかりません。書き方がかなり異なるので、比べようが無いとも言えます。ただ、どちらも強力な機能を持っています。では、モダンコンソールはどうかというと、レガシコンソールよりはいくらかマシになったとは言え、色々と不満と思われる部分がないわけではありません。Linux等と同等レベルのCUI環境が欲しいとなると、やはり、Bash + MinTTYの方が良いとなる訳です。
ただ、MinTTYはWindowsコンソールアプリを直接扱う事はできません。winpty経由でないと正常に動作しない、それがインストーラーに書いてあることです。通常のWindows版インストーラーで入るPython等はこの問題にぶち当たります。CUI自体の操作は良くなる代わりに、直接実行出来ない物があるという不便を強いることになります。
結局の所、どちらを選んでも一長一短だと言うことです。CUIとしてはやや不便な環境を使い続けるか、Python等を起動するときにwinpty経由にしなければならない不便さを許容するかになると言うことです。そんなのが嫌だ、より良いCUI環境で問題なくPythonを使いたいというのであれば、この回答の下に書いてあるConEmuやcmder等を使う必要があると言うことです。
【注意】Microsoft Store版Pythonはbashから使用できません。
現在、WindowsにPythonをインストールする方法は複数ありますが、Microsoft Storeでインストールした場合、PATHが通されるpython
コマンドは"%LOCALAPPDATA%\Microsoft\WindowsApps"にある特殊なpython.exeになります。このpython.exeは0バイトのダミーらしくコマンドプロンプトやPowerShell経由でないと、本来のアプリがうまく起動しません(Pythonが入っていないとストアを表示するような動作になっているらしいです。詳しい動作はまだ調べてきれていません)。この制限はMinTTYやデフォルトコンソールに関係無く、Git Bashを使う限り発生します。インストーラーでどちらを選んでも対応できません。
Git for Windowsのbashを主に使用しながらPythonを使う場合は、Python本家のインストーラーかAnacondaを使用してインストールするようにして下さい(Chocolateyでも構いません。下記にあげたConEmuはこれらのインストーラーで入るPythonであれば問題ありません)。Microsoft Store版を使用する場合は、bashを使わずに、コマンドプロンプトかPowershellを常に使うようにして下さい。コマンドプロンプトやPowerShellであってもgitコマンドは正常に使用できます。
**個人的な意見ですが、**インストール時の設定とは関係無く、ConEmuを使うことをお勧めします。
FAQ · git-for-windows/git Wiki にもConEmuの使用が代替候補として記載されています。ConEmuでも ConEmu | Using Git for Windows に設定方法が書いてあり、Git for Windowsでの使用をサポートしています。
**さらに個人的な意見ですが、**めんどくさがりな人には、ConEmu等の設定などをまとめて使いやすくしたcmderを使うことをお勧めします。cmderのFull版であればGit for Windowsが内包されているので、Git for Windowsを入れておく必要すら無くなります(Git for Windowsを別途インストールしておく場合はMini版を使用して下さい)。私自身は、ChocolateyでGit for Windowsもcmder(Mini版)もデフォルトオプションでインストールしていますが、特に不便になった事はありません。