WindowsベースのOSでGitExtensionsまたはTortoiseGitを使用することのメリットとデメリットは何ですか?
10 に答える
GitExtensionsはわかりませんが、TortoiseGitでの経験を共有できます(marc_sのコメントでほのめかされています)。
長所:
- Windowsとの優れた統合(これはシェル拡張です)
- TortoiseSVNとほぼ同じUI(すでにTortoiseSVNを使用している場合は、何を期待できるかがわかります)。
短所:
- gitの使い方を理解するのは難しいでしょう。
TortoiseGitの問題は、TortoiseSVNを使用した人は、すべてがSVNとまったく同じように機能すると思う(または機能するはずだ)と思ってしまうことです。個人的な経験として、私が働いている会社は2年後にSVNからgitに移行し、TortoiseGitを使用したすべての開発者は、自分たちが何をしているのか本当にわからず、時にはローカルリポジトリを台無しにしてしまいました。結局、彼らはTortoiseGitをやめ、gitの「難しい方法」(シェル、WindowsではmsysGit)の学習に時間を費やし、それ以来、誰もが満足しています。
結論:msysGitを直接使用して、適切にgitを学習してください。あなたは将来多くの頭痛を避けるでしょう。
私の会社は両方を試し、すぐに Tortoise Git をやめました。それははるかに頻繁にクラッシュしました。コーダーは、Tortoise Git には十分な機能がないと主張していますが、私自身はそれを確認していません。しかし、私は自分自身でクラッシュをたくさん見ました。
コーダーは git bash を好み、他の人は git 拡張機能を使用しますが嫌います。それらのいくつかでさえ、さらに git bash を開きます。プログレス カウンターを表示するには、Git bash が不可欠です。
Git 拡張機能には、プル中に進行状況カウンターを表示するオプションがありません。そのため、Git 拡張機能のみを使用すると、何が起こったのか、何かが失敗したのかどうかを知らずに、謎めいた非進行状況バーの前に座っています。最悪の場合は、パスワードが見つからないか正しくないことです。Git 拡張機能を使用すると、時間のかかる作業を行っているかのように同じ光るバーが表示され、永遠に待つことができます。Git 拡張機能のもう 1 つの恐ろしい点は、多くの大きなファイルをバージョン管理し、リベースでプルするときに、「メモリ不足」で頻繁に中止されることです。このような中断の後、非コーディング ユーザーは常に問題に圧倒されます。変更されていない多くのファイルが変更されたものとして表示され、ロックファイルが問題への対処を妨げます.
私の意見では、どちらの GUI ツールも未熟です。
Git Extensionsが必要な理由の1つは、コミットログのグラフィカルビューを表示することです(以下を参照)。そのグラフィカルなビューがなければ、gitを初めて使用するほとんどの人は、ブランチ、コミット、リベース、チェリーピッキングなどで何が起こっているのかを理解できないと思います(私はそうしなかったことを知っています)。
あなたはコマンドラインでもあなたの仕事のいくつかをやりたいと思うでしょう、あなたが得るすべての助けはコマンドラインベースになるので、実際にgitを使うのが最善の策です。
とはいえ、Tortoise Gitはすべて同じコマンドライン実行可能ファイルを呼び出し、同じgitリポジトリで動作するため、(動作することを前提として)TortoiseGitも使用できます。
ほとんどのIDEはgitもサポートしており、JetBrainsIDEAはその上に変更リストやその他の機能を追加するという素晴らしい仕事をしています。
Git Extensions は使ったことがないので話せません。純粋な GIT に問題がありました。たとえば、GVIM を統合できませんでした。Tortoise Git にはエディターと差分ツールが統合されているので (これは素晴らしい)、非常に便利です。私は Scott Chacon の本にあるブランチ ダイアグラムが大好きで、TGit にも同様のダイアグラムがあることを期待していました。ブランチを表示するためのツールはありますが、本にあるものほど良くありません。
覚えておくべきことの 1 つは、TGit は GIT 上の単なるシェルであるため、2 つの方法を混在させても害はないということです。私はほとんどすべてに TGit を使用していますが、扱いにくいコマンドや単に TGit でよく理解できないコマンドについては GIT を使用しています。ただし、TGit を使用する予定がある場合でも、前述のように、まず GIT の基本を理解することが重要です。Chacon の本 ( http://progit.org/book/からオンラインで無料で入手でき、Amazon で購入することもできます) の最初の、たとえば 3 つの章を読みました。あなたが私のような人なら、パラダイムを理解するためにそれらを何度か読みたいと思うかもしれません。それほど複雑ではありませんが、以前の VCS とは大きく異なります。
他のレビュアーのように TGit がクラッシュすることはありませんでしたが、私のレポは小さかったです。ユーザーエラーである可能性があるため、コミットコメントを複数回食べました。戻ってコメントを再編集できるので、これは単なる煩わしさであり、一目で大量の情報を表示するウィンドウを備えた GUI を使用する価値がありました。
上記の発言のいくつかに反論するために:
当然のことながら、TortoiseGit は Windows で git を操作するための優れた GUI を提供します。これは TortoiseSvn の代替ではありませんが、gitk + git-gui (コア git 機能の一部と見なされ、msysgit でアクセス可能) を使用して達成できるものよりも優れた gui です。私が見る唯一の悪い点は、チェックアウト/リベース/マージなどのすべての正確なコマンドを覚える必要がないことです.GUIを介して非常に便利にすべてを実行できるためです(これが要点です)。putty/ssh の問題は、Windows での ssh のサポートが劣っていることに関係しており、TortoiseGit に固有のものではありません。
GitExtensions を使用しています。私は TortoiseGit を使用したことはありませんが、他の開発者の 1 人は TortoiseGit を気に入っており、GitExtensions の使用を拒否しています。彼の推論は次のとおりです。1) よく知られています。2) Windows エクスプローラーとの優れた統合があります。
GitExtensions を使用する私は、次の 3 つのことだけに Windows エクスプローラーの統合を使用する傾向があります。
1) 新しいローカル リポジトリを作成するには (コンテキスト メニュー項目 Git Init Here、実際には Git for Windows コマンドです。GitExtensions は Git for Windows の上にあります);
2) Git 拡張 GUI (ブラウズ ウィンドウ) を開く。
3) リモート リポジトリをローカル リポジトリにクローンするには (コンテキスト メニュー項目 [Git 拡張機能] > [クローン])。
他のほとんどすべてについては、GitExtensions GUI を起動してそこから作業するだけです。
GitExtensions の開発者は、ほぼすべてのコマンドを GUI から実行できると主張しています。これは正確ではありませんが、複雑なタスクを実行するために月に 1 ~ 2 回コマンド ライン インターフェイスにアクセスするだけで十分です。
場合によっては、基になる Git コマンドの複雑さを GUI が隠すことで、複雑なタスクを単純化します。これには、複数の Git コマンドを 1 つのアクションに組み合わせることが含まれる場合があります。たとえば、GUI がサブモジュールの追加、初期化、および更新を 1 つのアクションに組み合わせたサブモジュールの作成。別のケースでは、Git にはないコマンド (サブモジュールの削除) を提供することで、GUI がタスクを簡素化します (Git では、サブモジュールを削除するには、.gitmodules や .git/config などのさまざまなファイルを手動で編集する必要があります)。TortoiseGit が同様の方法で複雑なタスクを簡素化するかどうか知りたいです。
GitExtensions には、かなり基本的な Visual Studio 統合もあります。TortoiseGit が行うかどうかはわかりません。Visual Studio 2008 および 2010 用の個別の Git ソース管理プロバイダーがあり、より広範な Visual Studio 統合を提供します。ただし、Git Source Control Provider をインストールしても、使用したことがありません。私が Visual Studio から使用する唯一の GitExtensions 統合はツールバーにあり、適切なリポジトリで GitExtensions GUI を開きます。一方のモニターで Visual Studio を操作し、もう一方のモニターで GitExtensions を開きます。
バージョン 2.32 以降の GitExtensions は、コミットされていないファイルの数をツールバーに表示します。以前はこの機能のない 2.24 を使用していましたが、非常に便利です。コミットされていない変更があるかどうかについて、即座にフィードバックを提供します。
コンパイル、カスタマイズ、拡張機能の構築をすばやく簡単に行うには、GitExtensionsがTortoiseGit(Visual C ++ MFC)よりも優れています(C#)
移植性に関しては、GitExtensionsはTortoiseGit(Win32 / 64のみ)よりも優れています(Windowsでは.NET、Linux / Macではmono)
Explorerでアイコンオーバーレイを使用するには、TortoiseGitを使用します
一部の機能のパフォーマンスについては、静的/動的ライブラリを呼び出してリポジトリから結果を取得するため、TortoiseGitの方が優れていますが、GitExtensionsはオーバーヘッドの大きいgit.exeコマンドラインのみを呼び出します。
TortoiseSVNから移行するには、TortoiseGitはGitExtensionsよりも使い慣れています。
日付: 2011 年 8 月 27 日。
この時点で、Tortoise Git はまったく機能せず、Google コード サイト ( http://groups.google.com/group/tortoisegit-users/browse_thread/thread/9090337b7936e1e1 ) の問題は 1 か月間注目されていませんでした。
Tortoise Git を最初に使用してサイトを複製する (そして開発を開始する) 際のポップアップの「Load Putty Key」ボックスがグレー表示されます。そのため、秘密鍵が見つからず、エラー メッセージは「接続が削除されました」という成功です!!!!
コンソールベースですが、Git Bash は完璧に動作します。上記の誰もが、Tortoise Git を使用する際に Git の概念を理解していないと話している場合、Tortoise Git を開発者のために動作させるために費やした最後の 3 時間を考慮に入れていなくても、私はそれに基づいてそれを避けます。彼はコンソール Git を学ばなければなりません。
私は 15 分で動作するようになりました。私はただのプログラマーを雇おうとしているハッカーです ;-)
PS、Eclipse には 3 つの主要なバージョン コントロール リポジトリの「コネクタ」がすべて用意されており、非常に優れたエディタです。