web-dev-qa-db-ja.com

「WindowsコマンドプロンプトからGitとオプションのUnixツールを使用する」オプションは危険ですか?

Gitをインストールするときに、すべてのmsys * nixツールをPATHに追加するオプションが提供されますが、次のように警告されます。

警告:これにより、「検索」や「並べ替え」などのWindowsツールが上書きされます。影響を理解している場合にのみ、このオプションを使用してください。

私の質問は:

  • どのツールと正確に競合しますか?
  • それは重要ですか?それらはシステムで一般的に使用されていますか? (私はそれらを個人的に使用したことがありません。)
  • PATH内のディレクトリの順序を変更して、競合を防ぐことはできますか?
  • これは2番目のオプションの機能ですか? (「WindowsコマンドプロンプトからGitを使用-このオプションは、最小限のGitラッパーを追加するだけなので、安全であると見なされます。」)
11

他の回答の一般的な分析には同意します。また、どのような衝突が発生する可能性があるかを正確に予測することもできません。私が3番目のオプションを選択することに問題があることに気付いていないことは知っています。ただし、2018年の時点でオプションが実際に実行する内容に少し追加することができます。

これらのオプションを含め、チームのgitへの移行を提案する方法を決定しながら、さまざまなインストール構成を試しました。 git for Windows v2.19.1のように、これが実際にインストールが私のパスに行っているのを観察したものです。

screenshot of Git For Windows installation options for setting the PATH

Git BashからのみGitを使用する

述べているように、システムのパスは変更されません。 Windowsコマンドプロンプトcmd.exeで単純なgit statusを入力すると、'git' is not recognized as an internal or external command, operable program or batch fileで失敗します。

WindowsコマンドプロンプトからGitを使用する

PATH内のディレクトリの順序を変更して、競合を防ぐことはできますか?

これは2番目のオプションの機能ですか? (「WindowsコマンドプロンプトからGitを使用-このオプションは、最小限のGitラッパーを追加するだけなので、安全であると見なされます。」)

順序の変更は常にオプションですが、2番目の選択肢は順序とは関係がないようです。 (パスの追加は、パスの末尾に関係なく行われるようです。ある時点でこれが変更されたことが少し疑わしいです。)これは、パスに追加されるディレクトリの問題であり、2番目と3番目のオプションで異なります。

「最小限の」GitラッパーをPATHに追加すると表示されている場合、実際に行われているように見えるのは、(今後の)インストールのcmdフォルダーをパスに追加することです。これは、最終的にチームに提案したオプションです。パスにC:\Program Files\Git\cmdが追加されました。

cmdディレクトリには何がありますか?私にとって、6つのファイルのみ:

  • git.exe
  • git-gui.exe
  • gitk.exe
  • git-lfs.exe
  • start-ssh-agent.cmd
  • start-ssh-pageant.cmd

アナクスナマンの答えと同様に、いつこれで十分ではないのかわかりません。 git <some command>で始まる通常のコマンドは、git.exeをインクルードすることで機能します。

WindowsコマンドプロンプトからGitおよびオプションのUnixツールを使用する

これには、2番目のオプションによる<Install dir>\Git\cmdのパスへの追加と、<Install dir>\Git\mingw64\binおよび<Install dir>\Git\usr\binのパスへの追加が含まれます。どちらのディレクトリにも、他の回答で述べたように、検索、並べ替え、削除など、かなりの数の実行可能ファイルがあります。

おそらく数百のアイテムをリストするのではなく、関係するユーザーにオプション2を実行してインストールを完了し、それらのディレクトリを確認することをお勧めします。リスクに満足している場合は、<Install dir>\Git\mingw64\binおよび<Install dir>\Git\usr\binをパスに追加することは、タイムマシンを元に戻し、3番目のオプションを選択することと同じです。

4
ojchase

どのツールと正確に競合しますか?

個人的には完全なリストはわかりませんが、 このStackOverflowの質問 は言っています

「これには、検索、削除、並べ替えが含まれます[...]最初の3つ(および同様の)の問題は、両方のOSに存在し、それぞれで機能が異なることです。 "

これらは頻繁に使用されることはないかもしれませんが、Gitが予期しない動作について警告する必要があると感じるほど一般的です。

事例としては、サードパーティのプログラム(主にスクリプト)に表示される可能性が高いため、効果のレベルは、これらのコマンドに依存するプログラムをどれだけ使用するかによって異なります。

これは2番目のオプションの機能ですか? (「WindowsコマンドプロンプトからGitを使用-このオプションは、最小限のGitラッパーを追加するだけなので、安全であると見なされます。」)

基本的には、コマンドライン(cmd.exe)からすべての一般的なGitコマンドでGitを使用できるようにします。このオプションは完全に安全で、Windowsコマンドラインからスクリプトまたは手動で実装する可能性のあるものの99%に役立ちます。私はこのオプションを使用しており、個人的に問題に遭遇したことはありません。

インストール後、グラフィカルgitインターフェース( GitHub Dekstop for Windows または SourceTree など)を確認し、Git bashに付属していることを忘れないでください。インストールも。

7
Anaksunaman

どのツールと正確に競合しますか?

インストールでPATHを変更します。不要な場合は、PATHから簡単に削除できます。次に、ディレクトリを確認し、diff、commなどの比較を行って競合を見つけます。どこにあるかはわかりませんが、どこかに文書化する必要があります。

それは重要ですか?それらはシステムで一般的に使用されていますか? (私はそれらを個人的に使用したことがありません。)

私は最近cygwinツールを使用していませんが、Windowsを使用する必要があったときは、通常、PATHの最初にcygwin toolsディレクトリを問題なく持っていました。

最大のリスクは、プログラムが競合するWindowsコマンドラインツールを探している場合、不正なプログラムを実行することです。非常に少量のcmd.exeスクリプトが続いていることを考えると、この可能性は非常に低いと思います。

PATH内のディレクトリの順序を変更して、競合を防ぐことはできますか?

はい。 cygwinまたはgitが追加するものをPATHの最後に移動するだけです。 cygwinでは特定のコマンドシーケンスが正しく機能しないことに注意してください。また、考えてみると、cygwinコンソールがパスを正しく設定していると思います。 cygwinを使用するときに独自のパスを設定すると、cygwinも正しく動作します。

これは2番目のオプションの機能ですか? (「WindowsコマンドプロンプトからGitを使用-このオプションは、最小限のGitラッパーを追加するだけなので、安全であると見なされます。」)

これは、gitを使用するために必要なgitコマンドのみを含むディレクトリをPATHに挿入するように聞こえます。

3
RobertL