Git重复 - 找不到包

时间:2013-08-11 00:54:39

标签: git github

好吧,我对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/*

3 个答案:

答案 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帮助台人员,以找出以下内容(终端命令包括那些像我一样,对所有这些都是新手的):

  1. Xcode开发包自动安装git版本。此版本安装在/ usr / bin中。您可以通过以下命令检查位置:$ which git
  2. 我在尝试更新时安装了自己的git版本,自动转到/ usr / local。两者之间存在版本冲突。由于位置不一致,git下载包中的uninstall.sh文件实际上并没有卸载以前的版本。
  3. 删除Xcode开发包完全释放了c。从我的驱动器7GB,并没有造成任何问题。但是,它没有解决根本问题,甚至没有删除旧版本的Git - 我最终不得不通过手动删除来删除这些文件。
  4. 从/ usr / bin中删除旧的Git版本后,我重新初始化了repo($ git init)。
  5. 然后我通过$ git remote set-url origin https://github.com/username/repo-name.git
  6. 重新设置了git引用
  7. 这允许我成功推送($ git push -u origin master$ git push),但是出现了奇怪的合并冲突,所以我从github($ git pull origin master)撤出,解决了与vimdiff的冲突(一个话题)本身 - 只需使用谷歌)然后再推。
  8. 塔达!显然都是固定的。 Github人员还建议创建一个新的克隆,以便在将来的工作中使用($ git clone https://gitub.com/username/repo-name.git)。

    感谢大家的意见。