84

Gitを使ったJavaアプリケーションを作っています。JavaGitEGitJGitと呼ばれるものがあることがわかりました 。

JavaGit と EGit/JGit が異なることは知っています。私が理解していないのは、EGit と JGit の違いです。両方とも Eclipse プロジェクトでホストされていますが、一方は Eclipse 関連のようで、もう一方はそうではないようです。

私は Eclipse を使用していないし、する予定もないので、「Eclipse 統合」についてはあまり気にしません。

JGit は何とか Eclipse に接続されていますか? (これは www.eclipse.org でホストされており、JGitのドキュメントにも多くの「eclipse」キーワードが含まれています)

3 つのうち、(Eclipse で作成されていない) Java プログラムを接続して Git リポジトリを操作するには何が必要ですか?

スタンドアロンの Git ライブラリを使用したい (つまり、ローカルの Git インストールに依存しない)

編集:もう1つの質問:

編集:答えが見つかりました-そうです(まだ試していません)。とtransport呼ばれるクラスのパッケージに含まれていますBundleWriter

4

6 に答える 6

58

JGit をスタンドアロン ライブラリとして使用できますが、JGit ホームページに記載されているように:

* EGit
、Git の Eclipse チーム プロバイダー

その意味で、EGit は JGit 機能を使用して Eclipse Git プラグインを開発するという点で、JGit は Eclipse に接続されています。
すべての Eclipse プロジェクトが (以前の CVS リポジトリではなく) Git リポジトリでバージョン管理されるようになったことを考えると、次のように思われるので、Java プロジェクトに JGit を検討します。

  • JavaGit はかなり長い間更新されていません (2008)
  • Eclipse は、EGit を介して Git の優れたサポートを提供することをお約束します。これにより、JGit (EGit によって使用される) の開発が拡張されます。

Thorbjørn Ravn Andersenのコメント:

Egit は JGit を使用するとおっしゃっていますが、上記では、EGit が git 用の Eclipse プラグインであり、CVS が Eclipse で既にサポートされているのと同じ方法で git サポートを提供していることは明確ではありません。

CVS から Gitへの Eclipse プロジェクトの移行は進行中であり、こちら(Chris Aniszczyk による) で報告されています。

いくつかのプロジェクトの開発リストで、CVS から Git へのプロジェクト コードの移行に関する会話を監視してきました。
ほとんどの開発者は、新しい環境で生産性を高める方法を理解するにつれて、移行によって多くの新しい学習がもたらされるという懸念にもかかわらず、移行の価値命題を理解しているようです。

必然的に、EGit プロジェクトによって開発されている Git のチーム プロバイダーに関する議論は、会話の重要な部分になります。「EGit はプライムタイムの準備ができていますか?」よく飛び交う質問です

現在 Git リポジトリにあるすべての Eclipse プロジェクトに「適切なツール サポート」を提供するという Eclipse の取り組みを示す公式のバグは、バグ 293192です。

git を優先して古い VCS を廃止するには (バグ 270854 )、適切なツールが利用可能でなければなりません。このバグは、それを追跡するために作成されました。[...]不足しているものの可視性と追跡を向上させるために、
関連するEGit バグを開いてリンクしました。

そのため、Egit は、すべての Eclipse プロジェクトに選択された新しい (D)VCS に適切なツール サポートを提供するために、そのバグで参照されている唯一のプロジェクトです。

(バグ 270854Deprecate old VCS toolsに関するもので、基本的に CVS が含まれます。)


Just in (2001 年 3 月 17 日): The State of Git at Eclipse – Early 2011 ( Chris Aniszczyk ):

Eclipse マーケットプレイスの統計と、プロジェクトが受け取ったコミュニティの貢献に基づいて、昨年からかなりの進歩を遂げたことを嬉しく思います。

EGit装着率

では、次は何ですか?ツールに関しては、1.0 リリース (Indigo リリースで予定されている) に近づいています。
最近の Eclipse の git ツールははるかに優れています。ヘルプが必要な場合や質問がある場合は、最も優れたEGit ユーザー ガイドから始めてください。

プロジェクトの場合は、eclipse.orgプロジェクト リポジトリを Git に移行するプロセスを開始することを検討してください。Git には、すでに多くの eclipse.org プロジェクトがあります
すべての eclipse.org プロジェクトが Indigo リリースまでに Git に移行する計画を立てていることを確認できれば幸いです。

于 2011-03-17T07:09:52.240 に答える
45

JGitとEGitの作者の一人として、混乱してすみません。

JGitは、EDL(new-style BSD)ライセンス、軽量、純粋なJavaライブラリであり、Gitバージョン管理システムを実装しています。スタンドアロンで使用でき、Gerrit、Eclipse、Netbeans、IntelliJなどのアプリケーションに組み込まれています。EGitはJGitを組み込み、それを使用してGitリポジトリーを操作し、Eclipse内からGitコンストラクトを公開します。現時点では、JGitはgit-bundleコマンドをサポートしていませんが、サポートを提供することを歓迎します。それほど難しいことではありません。寄稿者ガイドを参照してください。

于 2011-07-21T15:34:09.207 に答える
4

たった今この質問に出くわしたので、ちょうどチャイムを鳴らしてください。

Eclipse Foundation と Eclipse IDE には違いがあります。Foundation は統括組織であり、IDE は Foundation を通じて開発されたプロジェクトの 1 つです。したがって、知っておくべき重要なことは、Apache が Web サーバーから始まり、多くのプロジェクトをホストする Foundation に分岐したのと同じように、Eclipse Foundation が IDE の「ルーツ」を超えて拡大したことです。

したがって、このコンテキストでは、JGit コードは git コマンド用の Java API を提供しますが、EGit は JGit を使用して Eclipse IDE の git サポートを提供します。

個人的には、これには少し混乱することもあります。また、非常に多くのことが行われているために、これらの組織の焦点が何らかの形で低下しているように見えることもあります。ただし、20 の類似した異なる組織ではなく、1 つの統括組織を持つことの有用性も理解できます。

于 2011-03-28T18:58:21.763 に答える
3

JGit は Java ライブラリとしてゼロから実装された git ですが、JavaGit はネイティブの git 実装をラップする Java API です (つまり、ネイティブの git コマンドラインを呼び出します)。

EGit は、JGit を Eclipse IDE に統合する Git Eclipse チーム プロバイダーであり、Eclipse 内部から Git を操作するための UI を提供します。

その間、Eclipse コミュニティの大部分と多数の企業開発者が EGit/JGit を使用しています (これが、これらのプロジェクトを支援する企業が資金を投入する理由です)。プロジェクト ページ ( [1][2] ) を参照してください。誰が貢献しているかを知りたい場合は、おおっと。

于 2012-09-01T08:57:52.030 に答える
0

JGit は git リポジトリを操作するためのライブラリです。git リポジトリを好きなように操作するプログラムを作成しない限り、JGit だけを使用することはありません。

Eclipse を IDE として使用する場合は、バージョン管理プラグインとして EGit をインストールします (Indigo ではデフォルト)。EGit は JGit を呼び出すため、EGit をインストールすると JGit もインストールされます。

Netbeans の場合、バージョン管理プラグインとして NBGit をインストールすることに注意してください。NBGit は JGit も呼び出します。

JavaGit: 積極的にメンテナンスされていませんか?

于 2012-08-26T14:51:29.783 に答える
0

JGit は Git の Java 実装です。独自のアプリケーションでも使用できるライブラリです。また、ある種の CLI 操作も提供します。反対側の EGit は、JGit を Git 実装として使用する、Git 用の Eclipse チーム プロバイダー プラグインです。簡単に言うと、EGit は UI 部分であり、JGit は背景部分であると言えます。JGit は EGit に依存していませんが、EGit は JGit に依存しています。

から: https://www.eclipse.org/forums/index.php/t/273443/

于 2016-11-18T04:26:34.790 に答える