2009-03-08 6 views
39

これは最近別のquestion I askedに関連しています。windows上のmsysgit - もしあれば、私は何を知っておくべきですか?

  1. Windows環境を変更することはありません:

    msysgitをインストールし、インストーラがシステムパスに関連する3つのオプションを提示します。このオプションを使うと、bashシェルを使ってgitを操作する必要があります。

  2. git \ binディレクトリをPATH環境変数に追加しますが、組み込みのWindowsツールを上書きしません。 Fellow stackoverflow-ian Gabe Moothart told me in a commentこのオプションはいくつかのgit操作を失敗させるでしょう!これらの操作は何ですか?私はそれらについて心配すべきですか?

  3. 2と同じですが、デフォルトのシステムツールをオーバーライドします。これらのツールは何ですか?ウィンドウのどの部分がそれらの部分に依存していますか?実際にはこれは痛いでしょうか?

システムPATHとは無関係に別の問題が発生しています。

プロジェクトディレクトリ内にシンボリックリンクとハードリンクがある場合はどうなりますか? gitはこれに対処する方法を知っていますか?または、無限の再帰に苦しんでいますか、もしディレクトリ構造が、実際にはいくつかのフォルダが実際にその親の一つへのシンボリックリンクであったとすれば?

答えて

43

で説明されています。後者のオプションは、msysgitについては

は、WindowsがPATHに共通Linuxユーティリティのビルド追加されます。これは、findkillsortだけでなく、cplsrm、および約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アプリケーションの混乱を取り除くことができます。

私は現在、find含むGnuWinアプリと同様のスクリプトを使用します。

+2

また、Git Bashの '/ etc/bash_profile'に' export PATH = $ PATH:/ c/mingw/bin:/ c/mingw/msys/1.0/bin'を追加して、msysGitのシェルからMinGWにアクセスしてください。 – rpjohnst

3

(これは他のシステムの問題ではありませんが、私の非常に謙虚な意見です...)、あなたはcrlfの問題をよく認識していなければなりません。あなたがGitの非常に古いバージョンを使用している場合)、autocrlfは他のgitインストールとは異なり、デフォルトで有効になっています。

はまた、あなたは、msysgitの非常に最新のバージョンを使用しない限り、私はメーリングリストから正しくリコール場合はすぐにこの週出することに注意して、リポジトリのサイズは、合計2GBを超えることはできません。

さらに、Windowsは大文字と小文字を区別しませんが、時には/大文字と小文字を区別します。 (これはgitを必要不可欠なものに混乱させませんが、git repoのユーザを混乱させる可能性があります。

最後に、gitは(私の限られた経験では)選択肢よりも高速ですが、Linux上よりもかなり遅いです。パスに関しては今

、...

私が間違ってる場合を除き、あなただけのメインのgitバイナリがパスにあることを確認することができるはず - とそのバイナリが、他を参照の世話をする必要がありますgit components ...しかし、私はこれをテストしていません。

+2

AFAIK、Windowsは常に大文字と小文字を区別します。名前がすべて大文字である場合、エクスプローラはそれを小文字で表示しますが、ファイルは大文字で保存されます。 – configurator

+0

それは間違っていますが、あなたが支援記事を見つけた場合には役立ちます。 :) – Arafangion

3

cygwinプロンプトからgitを実行する場合、MSYS Gitインストーラはオプション2を提案します。 cygwin環境は、gitの依存関係がPATHにあることを保証します。このオプションを選択してからWindowsのコマンドプロンプトからgitを起動すると、gitが依存するすべてのunix-yコマンドラインユーティリティは見つかりません。 IIRCでは、git自体はbashスクリプトとして部分的に実装されています。私はどの操作が失敗するのか分からないが、私はgitがこの方法で使えるとは思わない。

オプション3が上書きするシステムツールのリスト(インストーラはfind.exeが記載されています)はありませんが、バッチスクリプトの忍者の場合にのみ影響します。コマンドラインでfindは、その名前のunixユーティリティを参照し、Windowsに付属しているexeファイルは参照しません。それはどのような方法でもウィンドウ自体を傷つけることはありません。

ただハサミで実行し、あなたがいることを認識する必要があり

+0

これは、バッチスクリプトに付属するツールを使用する場合、バッチスクリプト以外の忍者に影響します。私はこのようなツールを使いすぎてしまい、おそらく失敗するでしょう。 – configurator

9

:-)オプション3を選択します。

  • すべてのgitコマンドはまだありません。 。MSysGit1.6.2月上旬2009年:archimport、cvsexportcommit、cvsimport、cvsserver、フィルタ分岐、instaweb、送信-電子メール、およびシェル)

  • MSysGit1.6.2まで、のgit - SVN)はnot thereit is nowました。
    問題はgit-svnがSubversionのperlバインディングを必要とし、動的にロード可能なモジュールとしてのみビルドできます。 MSysGitには動的にロード可能なモジュールをサポートしていないperlバージョンがありました。 MSysGitについて

  • すべての詳細は最高のあなたが後者の選択肢はそれの外にGitを使用するための方法を追加し、関係なく、あなたが選ぶどのオプションのbashを取得し、そのMSysGitHerald Github wiki

0

WindowsでWindows GUIを使用していて、最初のリポジトリを作成するときは、リポジトリディレクトリに「.git」という名前を入力しないでください。 (それが次に作成し、次に別のものを作成します。あなたが最終的にそこに見えると思うときにgitフォルダを探してください)あなたのソースが入っているフォルダを参照してください。リポジトリディレクトリ ".get"が作成されます。

その後、ファイルを変更していない変更が表示され、ファイル名の横にある小さなページのアイコンをクリックすると、段階的な変更にそれらを移動します。

間違いなくはさみで実行し、オプション3を選択します。コマンドウィンドウの行からkill、sort、findを使用する人はいません。

+0

ええと、これはWindows上のmsysgitとは関係ありません(これはLinuxにも当てはまります)。私はそれが他のWindowsシステムツールを妨害する、あるいはそうでなければ混乱させる方法について尋ねていました。 – hasen

関連する問題