Windows上のmsysgit—もしあれば、何に注意する必要がありますか?
-
05-07-2019 - |
質問
これは、別の最近質問した質問に関連しています。
msysgitをインストールすると、インストーラーはシステムパスに関連する3つのオプションを提示します:
-
Windows環境を変更しないでください。このオプションでは、「bash」を使用する必要があります; gitで動作するシェル。
-
一部の組み込みWindowsツールを上書きせずに、git \ binディレクトリをPATH環境変数に追加します。仲間stackoverflow-ian Gabe Moothart このオプションが作成するコメントを教えてください一部のgit操作は失敗します!これらの操作は何ですか?心配する必要がありますか?
-
2と同じですが、いくつかのデフォルトのシステムツールをオーバーライドします。これらのツールは何ですか?ウィンドウのどの部分がそれらに依存していますか?そして、これは実際には傷つきますか?
システムPATHとは無関係の別の問題が思い浮かびました。
プロジェクトディレクトリ内にシンボリックリンクとハードリンクがある場合はどうなりますか? gitはこれらの対処方法を知っていますか?または、無限再帰に苦しむでしょうか?たとえば、ディレクトリ構造は、実際にはいくつかのフォルダがその親の1つへのシンボリックリンクであるようなものでしたか?
解決
選択するオプションに関係なく bash
を取得します。後者のオプションは、Gitを外部で使用するためのメソッドを追加するだけです。
後者のオプションの場合、 msysgit は、Windowsビルドの一般的なLinuxユーティリティを PATH
に追加します。これには、 find
、 kill
、および sort
が含まれます。 cp
、 ls
、 rm
、および約20〜30人です。
最初の3つ(および同様の)の問題は、両方のOSに存在し、それぞれで機能が異なることです。
どちらを使用するかを知っていれば大きな試練ではありませんが、一方を期待して他方を取得するように開発されたアプリケーションは確実に適合します。
Gitを期待どおりに動作させながら、競合を防ぐために、セッションに対してのみ PATH
を調整する単純なバッチスクリプトを作成できます。 (例: readygit.bat
)
@echo off
setlocal
set PATH=C:\Git\bin;%PATH%
cmd
それに応じて C:\ Git \ bin
を調整します。ただし、これを実行して、 cmd
内でGitを使用するだけです。
これにより、インストールオプション3を使用して、システムの PATH
から C:\ Git \ bin
を安全に削除し、Gitを混乱させることなくWindowsアプリの混乱を取り除くことができます。
現在、 GnuWin アプリで同様のスクリプトを使用しています。< strong> find
。
他のヒント
次のことに注意してください:
-
すべてのgitコマンドはまだありません。 2009年3月上旬のMSysGit1.6.2:archimport、cvsexportcommit、cvsimport、cvsserver、filter-branch、instaweb、send-email、およびshell。)
-
MSysGit1.6.2まで、git-svnはではありませんでした( 現在 )。
問題は、Subversionのperlバインディングが必要なgit-svnであり、動的にロード可能なモジュールとしてのみビルドできます。また、MSysGitには動的にロード可能なモジュールをサポートしないperlバージョンがありました。 -
MSysGitに関するすべての詳細は、 MSysGitHerald で説明されています。 Github wiki
Windowsでは(これは他のシステムではそれほど問題ではありませんが、私の謙虚な意見では...)、crlfの問題を非常に意識している必要があります(最新バージョンでこれを変更していない限り)他のすべてのgitインストールとは異なり、デフォルトでautocrlfが有効になっています。
また、最新バージョンのmsysgitを使用しない限り、メーリングリストから正しく思い出せば今週間もなく公開されることに注意してください。リポジトリサイズは合計2GBを超えることはできません。
さらに、Windowsは大文字と小文字を区別しませんが、場合によっては大文字と小文字を保持します。 (これは必ずしもgitを混乱させることはありませんが、gitリポジトリのユーザーを混乱させる可能性があります。)
最後に、gitはlinuxに比べてWindowsでの速度が大幅に低下しますが、(私の経験では限られていますが)代替手段よりも高速です。
今、パスについて...
私が間違っていない限り、メインgitバイナリがパスにあることを確認できるはずです-そして、そのバイナリは他のgitコンポーネントの参照を処理する必要があります...しかし、私はこれをテストしていません。
cygwinプロンプトからgitを実行する場合、MSYS Gitインストーラーはオプション2を提案します。 cygwin環境では、git依存関係がPATHに確実に含まれます。このオプションを選択した後、Windowsコマンドプロンプトからgitを呼び出すと、gitが依存するすべてのunix-yコマンドラインユーティリティが見つかりません。 IIRC、git自体は部分的にbashスクリプトとして実装されています。どの操作が失敗するかわかりませんが、gitがこのように使用できるとは思いません。
オプション3がオーバーライドするシステムツールのリストはありません(インストーラーはfind.exeに言及しています)が、これはバッチスクリプトの忍者である場合にのみ影響します。コマンドラインでは、 find
は、Windowsに同梱されているexeではなく、その名前のUNIXユーティリティを参照するようになります。ウインドウ自体に害を与えることはありません。
ハサミで実行し、オプション3を選択してください:-)
WindowsでWindows GUIを使用し、非常に最初のリポジトリを作成するときは、「。git」という名前を入力しないでください。リポジトリディレクトリ用。 (最終的にそこを見てみると、作成し、その下に別の.gitフォルダーを作成します)ソースを含むフォルダーを参照し、そのフォルダーを選択してください!リポジトリディレクトリ&quot; .get&quot;あなたのために作成されます。
その後、ステージングされていない変更のファイルが表示されます。ファイル名の横にある小さなページアイコンをクリックして、ステージングされた変更に移動します。
そして間違いなくハサミで実行し、オプション3を選択します。コマンドウィンドウの行で、kill、sort、findを使用する人はいません。