在 Eclipse git 中使用本机 git 而不是 jgit?

Posted

技术标签:

【中文标题】在 Eclipse git 中使用本机 git 而不是 jgit?【英文标题】:Using native git not jgit in Eclipse git? 【发布时间】:2015-05-19 04:49:14 【问题描述】:

有什么方法可以将 egit 配置为使用您的本机 (OS) git 而不是 jgit 实现?如果没有,是否有任何替代的 git Eclipse 插件?

EDIT #1 - 我应该注意,AWS CodeCommit 使用来自 .gitconfig 的 credential helper 进行身份验证:

[credential]
    helper = !/usr/local/bin/aws --profile CodeCommitProfile codecommit credential-helper $@
    UseHttpPath = true

我猜这是 CodeCommit 特有的,不在 jgit 中。

【问题讨论】:

FWIW,我在尝试克隆存储库时收到“不允许 git-upload-pack”。我使用的是 Amazon codeCommit,因此身份验证不是典型的用户名和密码。 EGit 使用 JGit,无法配置为使用原生 Git。 Aptana Studio 自带了一个使用原生 Git 的插件,但不知道能不能在 Aptana Studio 之外使用。我知道的其他本地 Git 客户端不与 Eclipse 工作区集成。你确定 git-upload-pack not allowed 是 JGit 的一个缺点,无法解决并且可以在原生 Git 中工作吗? @RüdigerHerrmann "git-upload-pack not allowed" 是我在尝试克隆存储库时遇到的错误。尝试推\拉时,我也会遇到其他身份验证错误。我认为这是因为亚马逊代码提交使用了 IAM 身份验证,而 jgit 由于某种原因无法使用它。 JGit 可以 fetch and push from/to Amazon S3 不确定这是否与 IAM 相同。但是,如果是这样,看起来所描述的技术也可以用于在 EGit 中进行身份验证。 【参考方案1】:

EGit 严格使用 Git 的 Java 实现 JGit。

Aptana Sudio3 中的 Git 插件似乎嵌入在产品源 (github.com/aptana/studio3) 中,但使用的是原生 Git。

有一个类jgit.transport.AmazonS3,如this question和this one (setting IAM)所示。

有一个有趣的讨论 in this thread 可以提供关于修补什么的线索:

查看how JGit access the S3 host 后,JGit 尝试使用虚拟托管样式请求访问存储桶 - http://bucketname.s3.amazonaws.com/ - 此请求样式适用于美国标准区域中的存储桶,但对于其他区域,S3 使用 HTTP 307 重定向对其进行重定向到正确的区域。

jgit 似乎没有正确处理这个 HTTP 307 重定向,需要实现正确处理 redirects by S3 的行为。

【讨论】:

有趣。感谢您的澄清。请参阅我对凭证助手的编辑。 @javamonkey79 我确认凭据助手不是 EGit/JGit 的一部分:您需要调整该凭据助手(或停用它以进行测试)以查看错误是否仍然存在。

以上是关于在 Eclipse git 中使用本机 git 而不是 jgit?的主要内容,如果未能解决你的问题,请参考以下文章

git如何避免代码冲突

如何让 EGIT 识别一个 Eclipse 项目中的两个 Git 存储库?

eclipse git 如何拉取代码

如何在Eclipse中使用Git

Git在Eclipse中的使用

eclipse中使用git