11

我一直在尝试使用 EGit 和 Bitbucket 启动一个项目,但我无法将项目推送到服务器中的存储库。

这些是我遵循的步骤(我将尝试非常具体,以便其他人可以将其用作教程模式;即使它不适合我,它也可能适用于其他人):

1) 我使用本教程在 Ubuntu 12.10 上安装了 Git

2) 遵循GitHub 的本教程

  • 在 Eclipse 中启动一个新的 C++ 项目
  • 在 Window > Preferences > General > Network Connection > SSH2 > Key Management 选项卡下,我生成了一个新的 RSA 密钥并将其添加到我在 Bitbucket 上的存储库的部署密钥列表中。
  • 右键单击eclipse项目: Team > Share project ;团队 > 添加到索引;团队 > 提交
  • 窗口 > 显示视图 > 其他 > Git > Git 存储库
  • 右键单击遥控器>创建遥控器>选中“配置推送”并输入我的项目名称
  • 添加 Push URL: ssh://git@bitbucket.org/myuser/myrepository.git, Protocol: ssh; 端口:空白;用户:git;密码:空白
  • 参考映射下的高级按钮并选择“主”版本。如果此步骤有效,则表示在 Bitbucket 和 EGit 中正确配置了 RSA 密钥。否则会显示连接错误。

一切都完成了。但是,当我按“推送”时,出现以下错误:

ssh://git@bitbucket.org/myuser/myrepository.git: push not permitted

我已经尝试了所有可能的配置:切换到新的工作空间、更新 Eclipse、创建新的存储库、重新安装 Git……有什么想法吗?

4

6 回答 6

11

好吧,我终于找到了一种使用它的方法。

它只是更改身份验证模式。如果使用 HTTPS 链接,而不是使用 SSH 链接,则一切正常。看来 SSH 只是在只读模式下工作。

SSH/HTTPS 选择

当然,身份验证方法不同:您必须输入密码,并且不再需要存储在 Bitbucket 中的 SSH 密钥。

对于那些对 EGit 有疑问的人,我建议按照 eugener 的方式来自动配置 EGit。然后,您只需选择 HTTPS 作为身份验证模式即可推送存储的提交。

于 2012-11-27T16:30:14.007 回答
3

在 Eclipse 中有much simpler way配置远程 Git 存储库:

  1. 在 BitBicket 上创建一个空仓库
  2. 复制 repo 的 URL
  3. 使用“Git 存储库”视图将存储库克隆到您的计算机。
  4. 将您的项目共享到新克隆的存储库中。

由于克隆了一个 repo - 远程设置是自动配置的。这意味着您将能够立即推送

于 2012-11-21T04:01:36.143 回答
0

这可能是.gitconfig 中的用户名配置错误

于 2012-11-20T22:46:17.283 回答
0

可能相关,我按照以下说明修复了“身份验证失败”问题: http ://wangpidong.blogspot.com.es/2012/05/how-to-use-bitbucket-with-egit-in.html

来自: 使用 BitBucket 配置 egit

于 2013-02-06T07:21:50.620 回答
0

在这种特定情况下,我同意Olivier J.在原始问题下的评论中的解决方案。

但我有类似的问题,这是由其他原因引起的。我解决了它,这就是发生的事情:

  1. 我一直在 Bitbucket (A) 上使用一些私有存储库,其中包含一些用户帐户和一些公钥 (X) 来访问它。我的pageantPutty 钥匙链中已装入钥匙 X。

  2. 然后我创建了一个新的公共存储库 (B),也在 Bitbucket 中使用不同的用户帐户和另一个公钥 (Y)。我也添加了这个键pageant

  3. 当我尝试访问存储库 B 时,显然使用了公钥 X 而不是 Y,因为 ..对于 SSH 客户端,两个连接都是相同的 - 同一主机(bitbucket.org)上的同一用户(git)!并且首先使用键 X 是因为 ..它是更早加载的?或者可能是因为它的名字按字母顺序排在第一位?我不确定,但结果是......

  4. 授予B 使用 X 的只读访问权限,因为存储库是公共的,并且任何有效的 Bitbucket 用户密钥都足以获得这种访问权限!

  5. ..但是写入(推送)需要密钥 Y,SSH 没有使用它。

所以一般提示是:通过 SSH 访问错误解决奇怪的只读 git 仔细检查 SSH 实际使用的私钥

我通过一次只加载一个键 - X 或 Y - 解决了这个问题,pageant但我希望以更聪明的方式做到这一点 - 如果你知道怎么做,请在评论中告诉我!

于 2014-09-06T21:36:40.957 回答
0

使用 Bitbucket 我这样做:

  1. 在 bitbucket 中创建存储库
  2. 使用 https url 克隆空存储库
  3. 使用 Team -> Share 选项将 Eclipse 中的项目连接到存储库,然后选择克隆存储库的位置
  4. 索引(阶段)您的项目文件
  5. 提交和推送
于 2016-01-14T19:33:49.533 回答