プロジェクトをgitに移行する予定ですが、現在、Windowsで最適なオプションや最も安定したオプションはどれか疑問に思っています。
私が収集したものから、基本的に2.5のオプションがあります。
注:IMO Cygwin自体は大きなプラスです。これは、ほとんどすべての* nixコマンドラインツールにアクセスできるためです。MSYSgitbashでは、これらのツールのかなり小さなサブセットにしかアクセスできません。
それを踏まえて、どのようなオプションを提案しますか?
プロジェクトをgitに移行する予定ですが、現在、Windowsで最適なオプションや最も安定したオプションはどれか疑問に思っています。
私が収集したものから、基本的に2.5のオプションがあります。
注:IMO Cygwin自体は大きなプラスです。これは、ほとんどすべての* nixコマンドラインツールにアクセスできるためです。MSYSgitbashでは、これらのツールのかなり小さなサブセットにしかアクセスできません。
それを踏まえて、どのようなオプションを提案しますか?
回答:
編集(さらに2年後:2014年10月)
Johannes Schindelin は、msysgitが段階的に廃止されると説明しました(2014年10月)。
これで、軽量のGit for Windows SDKができました。これは基本的に、パッケージマネージャーmingw-getを介して管理される標準のMinGW / MSysシステムです。
「msysGit」という名前(および同じ名前のGitHub組織)を段階的に廃止し、Git forWindowsで作業することにしました。(対応するGitHub組織を使用を使用することにしました。 Git forWindows開発者を対象とした開発環境の「エンドユーザー」および「GitforWindowsSDK」で)。
編集(3年後:2012年4月)
MsysGit(現在はGitHubにあります)は、Gitの世界で軽量の高速スタートが必要な場合に使用する方法です。アーカイブを解凍するgit-cmd.bat
か、起動するかgit-bash.bat
、完了です。
その最新版(1.7.10、2012年4月)が今含んUTF-8をサポートしても、GitExtensionに含ま。ただしautocrlf
、falseに設定することを忘れないでください。
msysgitにパッケージされていない他のすべてのunixコマンドが本当に不足している場合は、「Cygwinの軽量代替」という名前のGoW(WindowsではGnu)のリリースをダウンロードするだけです。
というのは: 130 UNIXコマンドS ...
Cygwinは、以下のインクリメンターで説明されているように、大規模なGitリポジトリの転送速度などの特定の場合にのみバックアップソリューションとなる必要があります。ます。これ回答述べています。
2012年6月:GitHubを操作する場合は、http: //windows.github.comがあります(「Windows用のGitHubの設計」も参照してください。)。
sshキーを構成する(そして生成された公開キーをGitHubプロファイルに追加する)だけでなく、すべてのgit操作に対して... MsysGitをインストールします。
元の回答(2009年4月)
MsysGitの最新バージョンに問題はありません:
私はオプション2ます。つまり、組み込みのWindowsツールをオーバーライドせずに、git \ binディレクトリをPATH環境変数に追加するだけです。
Notepad ++やWinMerge(またはDiffMerge)などの外部ツールを定義することができました
MsysGit1.6.2 +から、 'が含まれているため、svn2gitのようなスクリプトを正常に実行しました。git svn
'コマンド。
そして最後に、MsysGit1.6.2.3がfinally ' 'コマンドを含むのを楽しみにしていますgit filter-branch
!(フィルターブランチの遅いバージョンですが、それでも)。
Unixコマンドの場合、私はインストールすることを好みます GnuWin32 coreutilsパッケージ必要な場合にのみ使用することます。
したがって、全体として、私はCygwinレイヤーを使用せず、WindowsベースのリリースであるMsysGitでGitを非常にうまく実行できました。
はい。古い質問。新しい答え:
MSYSgitは、大規模な展開で約2年間使用されています。ローカルのgitリポジトリサーバーからの転送速度は5MiB / s未満に制限されています。この問題の以前の調査では、問題はMSYS開発者がWindowsXPおよびWindows7のセキュリティでコマンドプロンプト/ bashシェルからの接続を制限していることにあることが示されていました。実際、これは問題ではないようです。
Darrell Mozingoのブログ投稿を発見し、Cygwinインストールのみを使用して大規模な(多くのGiB)リポジトリのクローンをテストしました。転送速度は30MiB / sの範囲でした。問題は、MSYSgitが2007年の旧式のOpenSSHバイナリを使用していることです。
この目的のために、それが修正されるまで、私は現在、Cygwinへの移行を推奨しています(gitのバージョンは少し遅れていますが)。また、Cygwinの方が安定していて、perlのメモリが不足する可能性が低いこともわかりました。
私はgitのMSYSバージョンとCygwinバージョンの両方を使用することに手を出しましたが、正直なところ、どちらのエクスペリエンスも特に良いとは思いませんでした。gitはまだWindowsに対応しているとは思いません。
そうは言っても、MSYSバージョンで私が見つけた問題の1つは、(非バイナリ)ファイルの行末がUNIXスタイル(ラインフィード)からDOSスタイル(キャリッジリターン/ラインフィード)に変換されることです。これはバグまたは機能と思われるかもしれませんが、私が見つけた動作を変更する方法はありません。(編集:構成変数core.autocrlf
をに設定しますfalse
。ありがとうブライアン。)
OTOH、MSYSバージョンのgitには、Xサーバー全体をインストールして実行する場合を除いて、cygwinバージョンでは使用できないGUI機能がいくつかあります。(これを確認してくれたJoceに感謝します。)
私の印象では、MSYSバージョンの方が人気がありますが、それを使用するためにcygwinエコシステムをインストールする必要がないためかもしれません。(そして私は同意します、cygwinは非常に便利です。)
個人的には、BazaarまたはMercurialのどちらかを使用しますが、どちらもWindowsIMOをより適切にサポートしています。
CygwinとMsysGitはどちらも、通常のユースケースでかなりうまく機能します。git-svnなどのスクリプトを使用する場合は、Cygwinの方が適しています。ついにLinuxに飛びついた古いWindowsユーザーとして、Cygwinは大きな恩恵であり、それ自体で持つ価値があると断言できます。
ただし、コンテキストは重要です。これらはどのようなプロジェクトですか?彼らは誰によって使用されていますか?等。
msysgitをお勧めします。特にGitExtensionsと一緒に使用する場合:エディター/差分/マージツールなどの環境を構成する簡単な方法を提供し、ユーザーインターフェイスから高度なgit操作を実行できます。
MSysのcygwin実装で深刻なバグに遭遇しました。一部のコマンド、特にリベースは、失敗する傾向がありました。Cygwinのものは私にとってはるかに安定していました。
とは言うものの、それは一ヶ月前でしたが、それ以来改善されたかもしれません。
私はWindowsでCygwinGitとMsysgitの両方を使用しました。Cygwin + Gitの使用をお勧めします。Cygwin 1.7(現在ベータ版)は、git guiとgitkを使用しながら、(少なくとも私にとっては)主要なニュアンスに対処します。以前のバージョンのCygwinは、git-guiまたはgitkで何かを行うたびに、数十のcmdウィンドウを開いていました。これは1.7で対処されています。Cygwinの強力なシェルは、Linuxターミナルの多くの利点ももたらします。
とは言うものの、Msysgitはかなり進化しており、Windowsで非常に役立ちます。しかし、私はいくつかの問題に直面しました。
権限の問題:Windowsでネイティブに作成されたいくつかのファイルには、Msysgitの使用中に644に変換されたモード755がありました。これは、変更されたファイルとして表示されます。チェックインでこの問題を修正する必要があります。
CRLF:いつものようにとらえどころのないCRLFは、Windowsで問題を引き起こします。Msysgitは、ファイルが変更されたと報告する場合があります。これは、Msysgitのインストール中に「行末を変更しない」(正確なテキストを忘れた)を選択することで修正できます。
デーモン:ええ、Msysgitでgitデーモンをセットアップするのはまだ難しいと感じています。
Cygwinだけが必要で、Cygwinが押し込みたい他のツールは必要ないため、CygWinを予約しています。通常、WindowsコンピューターをWindowsコンピューターのように動作させ、CygWinはまったく異なるものを叩きたいのです。キックのためだけに* nix機能を平手打ちすることはできません。
重要なのは、コマンドラインのように* nixで作業したい場合は、Linuxマシンに移動して、代わりにそのコンピューターで作業することです。現在、仮想コンピューターとリモートデスクトップは魅力のように機能し、開発者は十分にアクセスできます。
CygWinを使用する正当な理由が本当に必要です。gitを使用するためだけの場合は、代わりにMSysGitを使用することをお勧めします。これが私の好みです。バンドルされているgitkおよびgit-guiツールで非常にうまく機能します。私はmsysgitを使用してEclipseとVisualStudioの両方に取り組んできましたが、それは魅力のように機能します。
私が今待っているのは、git用の完全に機能するTortoiseクローンだけです。
あなたは、単にWindowsの下の1つのシナリオがあります持っているのCygwin経由でのGitを使用するには:あなたが1.5よりも高いSVNクライアントのバージョンを期待SVNサーバ、反対にGitを使用する場合です。'mergeinfo'引数がない場合にコミットをブロックするSVNpre-commitフックが存在し、バージョン1.5以降のSVNでは 'mergeinfo'引数がデフォルトになっています。msysGitの問題は、古いSVNバージョン(1.4.6)に対してビルドされているため、この場合は正常にコミットできないことです。ただし、CygwinのGitは、新しいSVNバージョンに対して構築されているため、可能です。