致命的:“起源”似乎不是一个混帐存储库

我在我的Github账户上有一个仓库moodle ,我从官方仓库forked出来。

然后我在我的本地机器上克隆它。 它工作正常。 我创build了几个分支(在master分支下)。 我做了几个提交,它工作正常。

我不知道我是如何得到以下错误: git push origin master

 fatal: 'origin' does not appear to be a git repository fatal: The remote end hung up unexpectedly 

如何解决这个错误,而不影响我的Github仓库?

我使用的是Ubuntu 12.10

执行cat $(git rev-parse --show-toplevel)/.git/config后,我的.git/config的内容给出:

 [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [branch "master"] [branch "MOODLE_23_STABLE"] [branch "MOODLE_24_STABLE"] [remote "upstream"] url = git://git.moodle.org/moodle.git fetch = +refs/heads/*:refs/remotes/upstream/* 

$HOME/.gitconfig是你的git的全局configuration。
有三个级别的configuration文件 。

  cat $(git rev-parse --show-toplevel)/.git/config 

(由bereal 提到 )是你本地的configuration,你已经克隆的回购本地。

你也可以在你的回购中input:

 git remote -v 

看看是否有任何远程命名的“起源”在其中列出。

如果没有,如果该远程(在克隆repo时缺省创build)缺失,则可以再次添加它:

 git remote add origin url/to/your/fork 

OP提到:

git remote -v给出:

 upstream git://git.moodle.org/moodle.git (fetch) upstream git://git.moodle.org/moodle.git (push) 

所以“ origin ”缺失:对你的叉子的引用。
请参阅“ github中的originupstream之间的区别 ”

在这里输入图像说明

当我在GitHub上重新命名我的仓库时,我遇到了同样的问题。 我试图推动哪一点我得到了错误

 fatal: 'origin' does not appear to be a git repository fatal: The remote end hung up unexpectedly 

我不得不改变使用的URL

 git remote set-url origin ssh://git@github.com/username/newRepoName.git 

在这之后所有的命令开始正常工作。 您可以使用检查更改

 git remote -v 

在我的情况下成功改变后,它显示正确的URL重命名回购

 [aniket@alok Android]$ git remote -v origin ssh://git@github.com/aniket91/TicTacToe.git (fetch) origin ssh://git@github.com/aniket91/TicTacToe.git (push) 

这不能回答你的问题,但我面临类似的错误信息,但由于不同的原因。 请允许我为了收集信息而发表我的文章。

我有一个networking驱动器上的git回购。 我们称之为networking驱动器RAID。 我在本地机器(本地)和我的号码处理群集(CRUNCHER)上克隆了这个回购。 为了方便起见,我在我的本地机器上将我的账户的用户目录挂载在CRUNCHER上。 所以,我可以在CRUNCHER上操作文件,而不需要在SSHterminal上工作。

今天,我正在通过本地机器修改CRUNCHER上的回购文件。 在某个时候,我决定提交这些文件,所以做了一个提交。 添加修改后的文件,并按照我的预期进行提交,但是当我调用git push我收到了类似于问题中发布的错误消息。

原因是我从LOCAL的CRUNCHER回购商品内部push 。 所以,configuration文件中的所有path都是错误的。

当我意识到我的错误时,我通过terminallogin到CRUNCHER,并能够推送提交。

如果我的解释不能被理解,或者你发现我的post是多余的,请随意评论。

你可能试图从另一个分支拉出来的是不同步的; 所以在添加和删除远程尝试(如果你正试图从主拉)

 git pull origin master 

对我来说,简单的电话解决了这些错误消息:

  • 致命的:“主”似乎不是一个混帐存储库
  • 致命的:无法从远程存储库读取。

当我把git pull origin branchname设置为pathfs而不是ssh时 ,我在git pull origin branchname上出现了同样的错误:

 fatal: '/path/to/repo.git' does not appear to be a git repository fatal: The remote end hung up unexpectedly 

这是这样的(这只适用于git的同一服务器上有权访问git的用户):

 url = file:///path/to/repo.git/ 

修正它像这样(这适用于所有有权访问git用户 (ssh authorizes_keys或password))的用户:

 url = git@domain.com:path/to/repo.git 

我把它作为目录path的原因是因为git文件在同一台服务器上。

它可能帮助某人。 我原来有一个错字 。 之后我错过了“我”

 git push origin master 

请注意,这是或我的杜松子酒 – 不要错过r之后的“我”。