好的,我对 git 等比较陌生。我有一个 Rails 应用程序,我复制了一个新应用程序的基础(我怀疑这是这个问题的根源)。在最初的应用程序上,我对 git 没有任何问题。对于我已经初始化了一个 repo 的新应用程序,所有本地提交都很好,并且 repo 存在于 github 上,但是当我尝试推送时出现错误:
未找到 git-receive-pack:您是否在服务器上运行了 git update-server-info?
到目前为止,我已经检查了 git-receive-pack 是否在 /usr/bin 中,并且我还尝试运行该命令
用户$ git push receive-pack=/usr/bin/git-receive-pack
我还尝试根据这个问题(git-upload-pack: command not found, how to fix this wrong)更改 .git/config 文件以明确引用上传和接收包。我也试过跑步
ssh 用户@主机回显 \$PATH
检查远程非登录路径中的内容,但出现权限错误(权限被拒绝:publickey)。
那么,还有其他建议吗?
更新:我通常不使用实际的 git 应用程序,但记得它在那里,所以试图从它而不是命令行推送。错误是不同的“远程:找不到存储库”。如果我在应用程序中搜索它,它会显示“此存储库在磁盘上的位置已更改”。它会去哪里?
更新 2:根据以下 timoras 的问题,我想我现在(无意中 - 我只是模糊地知道我在做什么)从 https 切换到 ssh。当我尝试推送时,我现在收到一个新错误:
$ git push -u 起源大师
无效命令:'/usr/bin/git-receive-pack'username/appname.git''
您似乎正在使用 ssh 克隆 git:// URL。
确保您的 core.gitProxy 配置选项和
未设置 GIT_PROXY_COMMAND 环境变量。
致命:无法从远程存储库中读取
请确保您具有正确的访问权限并且存储库存在。
请注意,这是一个新错误,而不是原始错误。
如果我运行'$ git config -e',以下是输出:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "origin"]
url = git@github.com:username/appname.git
fetch = +refs/heads/*:refs/remotes/origin/*
uploadpack = /usr/bin/git-upload-pack
receivepack = /usr/bin/git-receive-pack
[remote "heroku"]
url = git@heroku.com:appname.git
fetch = +refs/heads/*:refs/remotes/heroku/*