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


11

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

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

私の質問は:

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

回答:


4

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

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

PATHを設定するためのGit For Windowsインストールオプションのスクリーンショット

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

述べられているように、システムのパスは変更されません。git statusWindowsコマンドプロンプトで簡単なcmd.exeを入力すると、で失敗し'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、あなたのパスに自分はタイムマシンのバックを取り、第三のオプションを選択することと同じになります。


仮定とコンテキストは年月とともに変化するため、4年前の質問に対して「2019年からの新しい視点はここにある...」という新しい回答を開始することは有用かもしれません
Christopher Hostage

1
これはまだトピックで最も有用な質問なので、追加の回答を受け取ることは適切だと思います。1年を追加しましたが、バージョン番号が同じ目的を満たしていると思いました。
ojchase

7

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

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

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

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

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

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

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

インストール後、グラフィカルgitインターフェース(WindowsのGitHub DekstopSourceTreeなど)を確認することもできます。Gitbashもインストールに付属していることを忘れないでください。


実際、CMDのツールのいくつかを使用したいのですが、2番目のオプションでUNIXツールを使用できるようにするのか、それともgitだけにするのか疑問に思いました。
Aleksandr Dubinsky、2015年

私の知る限り、それはgitだけです。
Anaksunaman、2015年

3

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

インストールで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に挿入するように聞こえます。


実際、gitはCygwinではなくMSYSを使用しています。違いは、msysがネイティブのwin32であるのに対し、cygwinはエミュレーションライブラリを使用してposixコードを適応させることです。
Aleksandr Dubinsky、2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.