好吧,我对git等比较新。我有一个Rails应用程序我复制作为新应用程序的基础(我怀疑是这个问题源于何处)。我对初始应用程序上的git没有任何问题。对于新应用程序,我已经初始化了一个repo,所有本地提交都很顺利,并且repo存在于github,但是当我尝试推送时出现错误:
未找到git-receive-pack:您是否在服务器上运行了git update-server-info?
到目前为止,我已经检查过git-receive-pack是在/ usr / bin中,还是我也试过运行命令
user $ git push receive-pack = / usr / bin / git-receive-pack
我还尝试根据此问题(git-upload-pack: command not found, how to fix this correctly)更改.git / config文件,以明确引用上传和接收包。 我也尝试过运行
ssh user @ host echo \ $ PATH
检查远程非登录路径中的内容,但是我收到权限错误(权限被拒绝:publickey)。
那么,还有其他建议吗?
更新:我通常不使用实际的git应用程序,但记得它在那里试图从它而不是命令行推送。错误是不同的“远程:找不到存储库”。如果我在应用程序中搜索它,则说“此存储库在磁盘上的位置已更改”。它会去哪里?
更新2:根据下面的timoras问题,我想我现在(无意中 - 我只是模糊地知道我在做什么)从https切换到ssh。当我尝试推送时,我现在收到一个新错误:
$ git push -u origin master
无效命令:'/ 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/*
答案 0 :(得分:1)
当我尝试将更改推送到我刚刚克隆并对其进行一次更改的存储库时,我收到此错误。 原来我只是没有对存储库的写访问权。
答案 1 :(得分:0)
似乎你在http / webdav上使用远程git。 运行/询问git管理员在git repo
的服务器上运行git update-server-info
修改
我认为你添加了错误的gtihub网址。
转到您的github网站。检查你的repo url(SSH克隆URL)并在你当地的git repo上执行:
remote set-url origin <url from gtihub page>
答案 2 :(得分:0)
好的,所以对于那些在类似问题上挣扎的其他新手,这最终成了一个传奇。我最终使用了各种来源,包括友好的github帮助台人员,以找出以下内容(终端命令包括那些像我一样,对所有这些都是新手的):
$ which git
$ git init
)。 $ git remote set-url origin https://github.com/username/repo-name.git
$ git push -u origin master
或$ git push
),但是出现了奇怪的合并冲突,所以我从github($ git pull origin master
)撤出,解决了与vimdiff的冲突(一个话题)本身 - 只需使用谷歌)然后再推。$ git clone https://gitub.com/username/repo-name.git
)。
感谢大家的意见。