在JavaGit,JGit和EGit之间select混乱

我正在制作一个使用Git的Java应用程序。 我发现有一个叫做JavaGit , EGit和JGit的东西。

我知道JavaGit和EGit / JGit是不同的。 我不明白的是EGit和JGit之间的区别。 两者都在Eclipse项目上,但似乎与Eclipse相关,其他则不是。

我不使用Eclipse,也不打算这么做,所以我真的不太关心“Eclipse集成”。

JGit以某种方式连接到Eclipse? (它在www.eclipse.org上托pipe,JGit的文档里面也有很多“eclipse”关键字)

在这三种方法中,我需要将我的Java程序(不是用Eclipse编写)连接到Git存储库?

我更喜欢独立的Git库(即,不依赖于本地Git安装)

编辑:还有一个问题:

  • JGit是否支持Git bundle命令 ?

编辑:我find了答案 – 它(还没有尝试过)。 它是在一个名为BundleWriter的类中的transport包中

您可以使用JGit作为独立库,但是,如JGit主页中所述 :

JGit可以在以下地址find:
* EGit,Git的Eclipse团队提供者

从这个意义上说,JGit连接到Eclipse,EGit使用JGit特性来开发Eclipse Git插件。
考虑到所有的Eclipse项目现在都在Git仓库(而不是之前的CVS仓库)中进行版本化,所以我会考虑将JGit用于您的Java项目,因为它似乎是:

  • JavaGit没有更新一段时间(2008)
  • Eclipse致力于通过EGit为Git提供良好的支持,它将通过扩展来确保JGit(由EGit使用)的开发。

ThorbjørnRavn Andersen评论道:

尽pipe你说Egit使用JGit,但在上面不太清楚,EGit是一个Eclipse插件,可以让git支持git,就像Eclipse已经支持CVS一样

Eclipse项目从CVS到Git的迁移工作正在进行中 ,并已经在此报道 (由Chris Aniszczyk撰写)。

我监视了几个项目的开发人员列表中有关将项目代码从CVS迁移到Git的对话。
大多数开发人员似乎都明白迁移的价值主张,尽pipe他们担心迁移会带来很多新的学习,因为他们在新环境中如何说出生产力。

不可避免地,关于由EGit项目开发的Git团队提供者的讨论成为了对话的重要部分。 “EGit是否准备好黄金时段?”通常是一个反弹的问题

官方的bug说明了Eclipse为所有Eclipse项目提供“充分的工具支持”的承诺,现在在Git repo上是bug 293192 。

为了不赞成使用旧的VCS( bug 270854 ),应该有足够的工具。 这个bug被创build来跟踪这个。
我打开/链接了相关的EGit错误 ,以便更好地查看/跟踪丢失的内容。

所以Egit是该bug中引用的唯一一个为所有Eclipse项目select的新(D)VCS提供足够的工具支持的项目。

( 错误270854是关于弃用旧的VCS工具 ,主要包括CVS。)


就在(2001年3月17日): Eclipse的Git状态 – 2011年初 ( Chris Aniszczyk ):

我很高兴,从去年开始,根据Eclipse Marketplace的统计数据和项目收到的社区贡献,事情已经有了很长的路要走。

EGit安装率

下一个是什么? 在工具方面,我们正在接近我们的1.0版本(Indigo版本计划)。
Eclipse的git工具现在好多了,如果您需要帮助或有疑问,请从最好的EGit用户指南开始

如果你是一个eclipse.org项目,请考虑启动这个过程来移动你的项目库到Git。 Git上已经有很多eclipse.org项目了
很高兴看到所有的eclipse.org项目都有计划通过Indigo发行版迁移到Git。

作为JGit和EGit的作者之一,抱歉让我感到困惑。

JGit是一个EDL(新型BSD)许可,轻量级,纯粹的Java库实现Git版本控制系统。 它可以独立使用,并embedded到Gerrit,Eclipse,Netbeans和IntelliJ等应用程序中。 EGitembeddedJGit来使用它来处理Git仓库,并在Eclipse中公开Git构造。 目前,JGit不支持git-bundle命令,但欢迎您提供支持,不应该那么辛苦,请参阅我们的贡献者指南。

只是为了叮叮当当,就像我刚刚就这个问题偶然发现的一样。

Eclipse Foundation和Eclipse IDE有区别。 基金会是一个伞形组织,而IDE是通过基金会开发的项目之一。 因此,重要的是要知道,就像Apache开始使用Web服务器并成为一个托pipe许多项目的基金会一样,Eclipse基金会现在已经超越了它在IDE中的“根源”。

因此,在这种情况下,JGit代码为git命令提供了Java API,而EGit使用JGit为Eclipse IDE提供git支持。

就我个人而言,我也觉得有时候会有点混乱,有时似乎有这么多的事情在某种程度上降低了这些组织的重点。 但是我也可以看到有一个伞形组织的效用,而不是20个相似但不同的组织。

JGit是作为一个Java库从头开始实现的,而JavaGit是一个包装本地git实现(即调用本地git命令行)的Java API。

EGit是将JGit集成到Eclipse IDE中的Git Eclipse Team Provider,并提供了从Eclipse内部使用Git的UI。

与此同时,大部分Eclipse社区和大量企业开发人员正在使用EGit / JGit(这就是支持这些项目的公司之所以投入资金的原因)。 如果你想得到一些有贡献的洞察力,请参阅项目页面和哦 。

JGit是一个操作git仓库的库。 你不要单独使用JGit,除非你编写一个程序来以你喜欢的方式操纵git仓库。

如果您使用Eclipse作为IDE,则将EGit安装为版本控制插件(默认为Indigo)。 EGit调用JGit,所以如果你安装了EGit,你也可以安装JGit。

请注意,对于Netbeans,您将NBGit安装为版本控制插件。 NBGit也叫JGit。

JavaGit:不积极维护?

JGit是Git的Java实现。 这是一个图书馆,也可以在你自己的应用程序中使用。 它还提供某种CLI操作。 另一方面EGit是Git的Eclipse团队提供者插件,它使用JGit作为Git实现。 简化你可以说EGit是UI部分,JGit是背景部分。 JGit不依赖于EGit,但是EGit依赖于JGit。

来自: https : //www.eclipse.org/forums/index.php/t/273443/