31

msysgit と Cygwin + git の違いは何ですか?

現在はmsysgitを使用していますが、Git Bash が気に入らない (サイズ変更やコピー/貼り付けはできません) ので、Cygwin に切り替えることを考えています。

4

10 に答える 10

44

編集 2018:

私の 2010-2012-2014 回答以来、2015 年に Git for Windows は msys2 を使用しています

詳細については、「msys、msys2、および msysgit は互いにどのように関連していますか?」を参照してください。


編集 (さらに 2 年後: 2014 年 10 月)

Johannes Schindelinは、 msysgit が段階的に廃止されたことを説明しました(2014 年 10 月) 。

これで、軽量の Git for Windows SDKができました。これは基本的に、パッケージ マネージャー mingw-get を通じて管理される標準の MinGW/MSys システムです。

「msysGit」という名前 (および同じ名前の GitHub 組織) を段階的に廃止することにしました。

  • Git for Windows (対応する GitHub 組織を使用)での作業、
  • 「エンドユーザー」向けのインストーラに「 Git for Windows 」という名前を使用し、
  • Git for Windows 開発者を対象とする開発環境には、 「 Git for Windows SDK 」という名前を使用します)。

2年後の更新:2012年7月

Msysgit は定着しており、 cygwin 用に数百 MBを追加する必要がない限り、Windows で Git を使用するだけで Cygwin は必要ありません。 また、GitHub にアクセスしたい場合は、GitHub for windowsで 1 つのパッケージ ("Git for Windows" + GitHub アカウントに登録された ssh キー + 素敵な GUI) を取得します。

GitmsysgitはどちらもGitHub にあります。msysgit.github.comページは、次の違いを明確に示しています

Git for Windows のロゴ <----------> MsysGit ロゴ
Git for Windows」: Git の純粋なユーザー | " MsysGit ": テスター、開発者、カスタム インストーラーのメンテナー向け

msysgit FAQも参照してください。

「MSysGit」のこの「MSys」とは何ですか?

MSys は、Unix タイプのシェルと Perl インタープリターを提供する Windows 用の環境です。Git の多くの部分はまだ C でプログラムされたビルトインではなく、代わりにシェルおよび Perl スクリプトであるため、Git for Windows にはそのような環境が必要です。

そのため、Git for Windows は非常に最小限のバージョンの MSys と共に出荷されます。

上流の Git が使用するのと同じ Unix タイプのセットアップを再利用するため、Git をビルドするには MSys も必要です。GCC を含む、より完全な MSys 環境をビルド環境として出荷します (したがって、「msysGit」というニックネームが付けられています)。

ただし、 Git は純粋なMinGWプログラムとしてコンパイルします。つまり、標準の Windows ライブラリ以外にはリンク依存関係がないプログラムです。
そのため、まだシェルまたは Perl スクリプトとしてのみ実装されている Git の一部を使用する必要がない限り、プレーンな git.exe を実行するだけで済みます。


元の回答: 2010 年 6 月

a/ 他の Windows シェルと同様に、Git bash でサイズを変更してコピーして貼り付けることができます。

b/ msysgit ではなく「Git for windows」を使用している可能性があります。ウィキから:

  • msysGit は Git for Windows をコンパイルするための開発環境です。msysGit をインストールするだけで、Git をビルドできるという意味で、これで完了です。サードパーティのソフトウェアをインストールせずに。
  • Git for Windows は、Git をインストールするインストーラーであり、Git のみをインストールします

違いは簡単にわかります。

  • Git のインストーラーには接頭辞 Git- が付いています。
  • msysGit インストーラーにはプレフィックス msysGit- が付いています。

もう 1 つの証拠は、msysGit インストーラーには fullinstall と netinstall の 2 つのフレーバーがあることです。
さらに、msysGit はデフォルトではインストールされませんC:\Program Files
しかし、msysGit にはgcc、GNU C コンパイラが付属しています。

c/ MSysGitHerald10から:

覚えて:

  • MinGW は実際には、Microsoft ランタイム上の非常に薄いコンパイル時レイヤーです。したがって、MinGW プログラムは実際の Windows プログラムであり、Unix スタイルのパスや呼び出しなどの POSIX の細かい点の概念はありませんfork()
  • 対照的に、MSys は Cygwin のスリム化されたバージョン (古いバージョン) であり、その唯一の目的は、bash を実行するのに十分な POSIX レイヤーを提供することです。

そして、それは常に歓迎されるわけではありません:

Windows で作業しているとき、名前が示すように、msysGit が MSYS と Unix ワールドのツールに依存していることが嫌いです。Git ディストリビューションのすべてのプログラムは、シェル インタープリターや Tcl/Tk などのサードパーティ言語に依存するのではなく、特定のプラットフォーム用にコンパイルされたバイナリになるべきだと私は信じています。

とはいえ、2007 年に Cygwin にインストールされた最初の Git よりもはるかに優れています。

于 2010-06-29T20:19:47.693 に答える
4

cygwin + git は、かつて git を機能させる唯一の方法でした。msysgit が登場した今、cygwin を使用する理由が見当たりません。

私はgit bashがそれほど良くないことに同意します..だから私がしていることは

  1. コマンドラインが必要な場合は、gitをパスに入れ、ウィンドウコマンドプロンプトを使用します
  2. git に GUI が必要な場合に備えて、tortoise git をインストールします。
于 2010-06-29T19:40:05.280 に答える
2

MSysGit には、非常に古いバージョンの SSH が付属しています。私のシステムのスループットは約 10 メガビットでした。クローン速度を気にしない場合、これは影響しません。修正は、Cygwin Git を実行するか、 MSysGit にインストールされている SSH を置き換えることです

于 2013-01-23T02:05:37.243 に答える
1

msysgit の bash 実装は古いです。ただし、編集時にvimを使用するとうまく機能します。切り取りと貼り付けに関しては、SHIFT + ALT + [スペース]、E、M、または必要なテキストをマークするためのキーを使用することがよくあります。理想的ではありませんが、切り貼りしすぎないので、十分に機能します。

VirtualBoxを介して同じマシンでUbuntuの実行を開始しました。シームレス モードと共有フォルダーにより、最新の bash と高速な Git を活用できます。

必要に応じて履歴を視覚化するために、gitk (gitk --all 用) 以外の Git 用の GUI ツールは使用しません。

私はcygwinを試しましたが、好きではありませんでした。msysgit では不十分な場合は、仮想ボックス ソリューションの方がはるかに優れています。

于 2010-06-29T19:46:47.247 に答える
1

cygwin 上の git の現在のバージョンは 1.7.5.1 で、非常に最新です (2011 年 5 月)。

msysgit(別名「Git for Windows」)を試してみることを検討していますが(現在のバージョンは1.7.4)、他のものを使用する理由は(今のところ)ありません。

于 2011-05-17T17:19:10.540 に答える
0

Msysgit は、ファイル システムの大文字と小文字を区別しない、ファイルのロックなど、Windows 固有の問題に対処するための多数のパッチを受け取りました。cygwin バージョンを使用するのはおそらく悪い考えです。システムに cygwin がある場合は、git をまったくインストールしないこと、できれば同じ PATH から msysgit または cygwin 環境を共有しないことをお勧めします。

于 2014-11-05T17:09:14.080 に答える