Git.cmdは単なるラッパーである(ただし、デフォルトでPATHに追加される)という大まかな考えはありますが、git.exeも同様に機能することがわかり、これを回避するために使用する予定です issue (XP64のchcpに関しては、むしろコメントします)。なんらかの理由でそれはまったくお勧めできませんか?また、そもそもgit.cmdは本当に必要ですか?
注:私が参照しているchcpの問題は、 のようにPATHエントリが欠落していることが原因ではありません。「chcp」は、内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません。 Windows PCの場合
_git.cmd
_は、現在のバージョンのmsysgit(1.8.0など)には存在しなくなりました。 _git.cmd
_は、_git.exe
_と呼ばれる新しいラップに置き換えられたラッパーでした。これを実際の_git.exe
_と混同しないでください。
%ProgramFiles(x86)%
または_%ProgramFiles%
_のGitディレクトリを見ると、次の構造が表示されます。
_Git
|-- bin
| |-- git.exe
|-- cmd
|-- git.exe
_
ラッパーは、cmd.exeからgitを使用するための環境を適切にセットアップするために、msysgitに長い間存在していました。付属のbashシェルを使用している場合は、git.exeが直接実行されます。
ここで、古いcmdバージョンと新しい実行可能ラッパーを比較できます。
この魔法について心配する必要はありません。msysgitbash環境以外からラッパーを呼び出す必要があることを理解してください。インストーラーのパスにgitを追加すると、追加されるのはGit\cmdディレクトリです。含まれているすべてのユーティリティをシステムパスに追加することはお勧めしません。これは、特に他のmsysまたはcygwinがインストールされている場合に、多くの問題を引き起こす可能性があるためです。最近のメモリで実際に試したことはありませんが、パスにcmd
ディレクトリとbin
ディレクトリの両方が配置され、cmd
が優先されると思います。
私にとって、新しいgit.exeラッパーには大きな利点が1つあります。それは、gitを呼び出すコードの移植性を高めることです。以前は、gitを呼び出すpythonスクリプトを作成した場合、シェル環境(subprocess.Popen()
with _Shell=True
_)でコマンドを実行するか、実行する必要がありました。 cmdファイルを明示的に。これで、OSに関係なく、名前として「git」を使用してプロセスを実行できます。これは、WindowsのCreateProcess()がバッチファイルを実行しないためです(_.cmd
_はのエイリアスです) _.bat
_)、それを実行するには_cmd.exe
_を呼び出す必要があります。
Msysgitをインストールする場合、3つのオプションがあります。
1つ目は、PATH
に何も置かれず、Git Bashを使用するためにhaveであるということです。
2つ目はgit.cmd
およびgitk.cmd
がPATH
に追加されるため、Windowsにある他のツールに影響を与えることなく、cmd、Powershell、cygwinなどで使用できます。 ( この git.cmd
は、質問に答えるためにこれを行うことができるラッパーです)。
3番目(私のお気に入り)は、すべてのツールを追加することです、そしてgit.exe
、PATH
でこれを使用します。これはWindowsツールに影響し、MSYSに付属しているツールのフルセットを使用できるようになります。
私はいつも3番目のオプションを使用しました。私はそれが私にどのように影響するかを見たことがありません(私はPowershellとpowershellコマンドレットを使用し、標準のWindowsコマンドは使用しません)そのようなもので、Mingw exeを自由に使用したい場合は、3番目のオプションを選択してください。
git for Windowsインストーラー によると、セットアップ中にパスにgit.exeを追加するオプションがあります。そのオプションを使用しても問題ないはずです。