致命:'origin'似乎不是一个git存储库

时间:2013-03-26 12:50:27

标签: git github push git-push

我在我的Github帐户上有一个存储库moodle,我forked来自官方存储库。

然后我将其克隆到我的本地机器上。它工作正常。我创建了几个分支(在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

执行.git/configcat $(git rev-parse --show-toplevel)/.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/*

7 个答案:

答案 0 :(得分:89)

$HOME/.gitconfig是git的全局配置 有three levels config files。{/ p>

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

mentioned bereal)是您的本地配置,是您克隆的repo的本地配置。

你也可以在你的回购中输入:

git remote -v

并查看其中是否列出了任何名为“origin”的遥控器。

如果没有,如果缺少该远程(克隆回购时默认创建),则可以再次添加:

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”:对你的分叉的引用。
请参阅“What is the difference between origin and upstream in github

enter image description here

答案 1 :(得分:12)

当我在GitHub上重命名我的存储库时遇到了同样的问题。我试图推动我得到了错误

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

我必须使用

更改网址
git remote set-url origin ssh://git@github.com/username/newRepoName.git

此后所有命令开始正常工作。您可以使用

检查更改
git remote -v

在我成功更改后的情况下,它在URL

中显示了正确的重命名repo
[aniket@alok Android]$ git remote -v
origin  ssh://git@github.com/aniket91/TicTacToe.git (fetch)
origin  ssh://git@github.com/aniket91/TicTacToe.git (push)

答案 2 :(得分:5)

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

git pull origin master

对我而言,简单的调用解决了这些错误消息:

  • 致命:'主人'似乎不是一个git存储库
  • 致命:无法从远程存储库中读取。

答案 3 :(得分:3)

尝试首先创建远程源,可能因为您更改了远程仓库的名称而丢失了

git remote add origin URL_TO_YOUR_REPO

答案 4 :(得分:2)

这不能解答您的问题,但我遇到了类似的错误消息,但原因不同。请允许我为了收集信息而发帖。

我在网络驱动器上有一个git repo。我们称这个网络驱动器为RAID。我在我的本地机器(LOCAL)和我的数字运算集群(CRUNCHER)上克隆了这个仓库。 为方便起见,我在我的本地计算机上的CRUNCHER上安装了我的帐户的用户目录。因此,我可以在CRUNCHER上操作文件,而无需在SSH终端中进行工作。

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

原因是,我在LOCAL上的CRUNCHER上的回购中调用了push。因此,配置文件中的所有路径都是完全错误的。

当我意识到自己的错误时,我通过终端登录CRUNCHER并能够推送提交。

如果我的解释无法理解,或者您发现我的帖子多余,请随意发表评论。

答案 5 :(得分:1)

我遇到了同样的问题并通过检查解决了

git remote -v

git init the repo URL

git remote add origin the repo URL

git push -f origin master

答案 6 :(得分:0)

中将远程来源设置为路径 fs 而不是 ssh 时,我在 git pull origin branchname 上遇到了同样的错误。的git /配置

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或密码)的用户):

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

我将其作为目录路径的原因是因为 git 文件位于同一台服务器上。