1

当我尝试从我的 Windows 计算机推送时,我正在尝试在我的测试服务器上设置一个 git repo

git push ssh://git@server.com:/path/.git

我得到错误

fatal: The remote end hung up unexpectedly

但是当我 ssh 进入我的服务器并尝试执行完全相同的命令时,它工作得很好。这是我的 git 设置或我的 Windows 设置的问题吗

4

2 回答 2

4

该问题可能是由许多问题引起的:

  • Git 安装在服务器上某个奇怪的地方,并且“git”用户在交互式登录时获得的环境(您通过 PuTTY 或其他方式手动执行此操作)与非交互式登录时获得的环境不同( git 客户端会为您执行此操作)。这是因为 Unix shell 在这些情况下会读取不同的启动文件,并且当git使用 SSH 生成远程git实例时,它仍然会在服务器上生成默认的(用户)shell。
  • 您有一个本地问题(例如,您将 Git 配置为用于plink.exe访问服务器,它要求您通过输入“y”或“n”(您不能这样做)来接受主机的密钥。

无论如何,请尝试以下步骤:

  1. 运行plink.exe git@server.com "git --version"并查看它是否能够在服务器上运行 Git。如果您不使用plink.exeWindows 版 Git 随附的 OpenSSH 随附的任何二进制文件;大概是ssh.exe
  2. GIT_TRACE=1在运行之前导出git push,看看它是否打印出任何暗示出了什么问题的东西,如下所示:

    C:\foo>GIT_TRACE=1
    C:\foo>git push ssh://git@server.com:/path/.git
    
于 2012-05-04T12:13:30.390 回答
0

我怀疑问题是用户“git”没有对远程存储库的写入权限,并且您可能正在使用自己的用户名(cemurray 或类似用户名)手动连接。

于 2012-05-04T03:45:13.220 回答