1

我克隆https://github.com/java093/springside4.git 并在 Eclipse 中成功提交本地更改的文件。然后我使用 Team->Push to Upstream 它显示错误: 推送期间发生内部异常:https://github。 com/java093/springside4.git:不允许 git-receive-pack

我该如何解决这个问题。在我的另一台 PC 上使用相同的 git url (https://github.com/java093/springside4.git) 成功。

  1. 我的 Eclipse 版本 eclipse-jee-helios-SR2-win32。
  2. 我已经在我的 github 帐户中设置了关于此笔记本的 SSH 密钥。但我如何检查它是否已成功设置。
  3. 我在哪里可以找到git-receive-pack 不允许的日志。
4

4 回答 4

2

检查您是否在“其他 PC”上为上游存储库使用相同的远程地址:

您可以使用:

  • 一个 https 地址,就像您所做的那样:但是您的 ssh 密钥将不会参与其中
  • 一个 ssh 地址:git@github.com:[repo_owner_username]/[repo_name].git并使用此处所示的配置文件。

底线是:如果您希望使用 ssh 密钥,则必须使用 ssh url,而不是 https (这将使用 GitHub 凭据,即您的 GitHub 登录名和密码,_netrc在 Windows 或.netrcUnix 上使用“与 github 同步”,而不是您的 ssh 密钥)。

正如 OP 在下面提到的,这种情况下的问题类似于bb 描述的问题:

使用非交互式 shell 时 Git PATH 问题的解决方案

> 在 Linux 上

git config remote.origin.uploadpack '/home/<user name>/bin/git-upload-pack'
git config remote.origin.receivepack '/home/<user name>/bin/git-receive-pack'

(或者,在 OP 的情况下考虑服务器上的 git 安装路径:

git config remote.origin.uploadpack '/home/bin/git-upload-pack'
git config remote.origin.receivepack '/home/bin/git-receive-pack'

)

> 在 Windows 上

git config remote.origin.uploadpack 'libexec/git-core/git-upload-pack'
git config remote.origin.receivepack 'libexec/git-core/git-receive-pack'

上述解决方案运行良好,但假设您已经有一个本地 git 存储库,它正在跟踪服务器上的远程存储库。
克隆 repo 将失败并出现同样的错误

git clone -u /home/<user>/bin/git-upload-pack <user>@<host>:/<path-to-repo>
git clone -u /home/bin/git-upload-pack <user>@<host>:/<path-to-repo>
于 2012-06-24T07:52:50.377 回答
2

非常感谢。这个问题是因为git-receive-pack (push) 命令设置不正确。我已经解决了:git config remote.origin.uploadpack /home/bin/git-upload-pack

GIT:推送到远程服务器时出现“git-upload-pack:找不到命令”

于 2012-06-28T17:53:11.903 回答
0

在大多数情况下,这是由于缺少身份验证详细信息:

  1. 打开配置。
  2. 单击 URI 字段的更改按钮。
  3. 在更改弹出窗口中确保您的 URI 路径类似于:“ https://github.com/[repo_username]/[repo_name].git
  4. 选择 https 协议
  5. 添加 repo_username 和密码。

希望它能解决问题。

于 2016-05-24T18:07:22.007 回答
0

检查您是否拥有对此存储库的“写入”访问权限。

于 2016-06-17T09:43:27.277 回答