Git推送:“致命的“来源”似乎不是git存储库-致命无法从远程存储库读取。”


119

我知道已经问过类似的问题。

但是,我认为我的问题是由于我先前犯的一个错误所致,因此有所不同:让我解释一下。

一切工作顺利,我可以:

  • git add . 我本地存储库中的所有文件。
  • git commit -m "message here" 将消息添加到我的提交中。
  • git push origin master 将我的文件上传到GitHub。
  • git push heroku master 将我的文件上传到Heroku。

但是,在某个时候,我在本地创建了一个新分支add-calendar-model,以防应用程序开发的后续步骤向南延伸。

...这正是发生的事情。

但是,尽管进行了很多尝试,但我还是没有设法从master分支到本地存储库获取初始代码(即创建新分支之前的代码)。

所以,我决定从我的本地库,并手动删除所有的文件git clonemaster从GitHub分支。

这样,我将所有文件取回来,但是现在,我无法再将其推送到远程存储库。

每当我尝试运行git push origin add-calendar-model或时git push origin master,都会出现以下错误:

fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

正如您可能已经猜到的那样,我对Git和GitHub不太满意,我不得不承认我不知道如何解决此问题。

任何想法?


我有一个类似的错误,但是我的问题是我在尝试使用的当前文件夹的父目录中初始化了git。万一有人面对,以防万一,可以看看git的初始化位置,然后再试一次。
Himanshu Kriplani

Answers:


215

首先,通过运行检查您的原点设置

git remote -v

这应该向您显示该项目的所有推/取遥控器。

如果返回但没有输出,请跳至最后一个代码块。

验证远程名称/地址

如果这返回显示您已设置了遥控器,请检查该遥控器的名称是否与您在命令中使用的遥控器匹配。

$git remote -v
myOrigin ssh://git@example.com:1234/myRepo.git (fetch)
myOrigin ssh://git@example.com:1234/myRepo.git (push)

# this will fail because `origin` is not set
$git push origin master

# you need to use
$git push myOrigin master

如果要重命名遥控器或更改遥控器的URL,则需要先删除旧的遥控器,然后添加正确的遥控器。

删除旧的遥控器

$git remote remove myOrigin

添加丢失的遥控器

然后,您可以使用添加正确的遥控器

$git remote add origin ssh://git@example.com:1234/myRepo.git

# this will now work as expected
$git push origin master

它的工作对我来说没有ssh://前面git@example.com:1234/myRepo.git
卡罗尔-特奥多尔·Pelu

我正在阅读此问题,是否还可以帮助解决新的存储库推送错误?
StaticVariable

12

正如马特·克拉克(Matt Clark)所述

但是,可能未设置原点,因此跳过删除步骤,仅尝试添加即可清除此问题。

git remote add origin <"clone">

“克隆”只是进入您的GitHub存储库,然后复制“ HTTPS克隆URL”并粘贴到GitBash中


3

确保.git上的配置文件正确...检查URL并确保您使用正确的密钥协议... ProjectWorkspace / .git / config

  ~Wrong url for git@bitbucket
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = gitbucket.org:Prezyack/project-one-hello.git
    fetch = +refs/heads/*:refs/remotes/origin/*

 ~Wrong URL for SSH...
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = https://emmap1@bitbucket.org/emmap1/bitbucketspacestation.git
[branch "master"]
    remote = origin
    merge = refs/heads/master

我们正在查看URL ...例如:对于bitbucket,请期待git@bitbucket.org...。如果是gitbucket.org。进行必要的更改。保存再次尝试按。


1

这个对我有用。

git remote add origin https://github.com/repo.git
git push origin master

将存储库URL添加到本地工作目录中的源



0

我遇到过同样的问题。当我检查配置文件时,我注意到'fetch = + refs / heads / :refs / remotes / origin / '与'url = Z:/GIT/REPOS/SEL.git'在同一行,如下所示:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = Z:/GIT/REPOS/SEL.git     fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[gui]
    wmstate = normal
    geometry = 1109x563+32+32 216 255

最初我并不认为这会很重要,但是在看到Magere的帖子后,我提出了建议,并解决了问题:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = Z:/GIT/REPOS/SEL.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[gui]
    wmstate = normal
    geometry = 1109x563+32+32 216 255

0

如果您使用git clone添加远程存储库,请按照以下步骤操作:-

git clone <repo_url> 然后

git init

git add * *表示添加所有文件

git commit -m 'your commit'

git remote -v要检查是否有分支运行,如果没有,则不显示任何内容,然后我们添加或获取存储库。“ 先获取”。您需要运行 git pull origin <branch>在下一次推送git pull -r origin <branch>之前。

然后

git remote add origin <git url>
 git pull -r origin master
git push -u origin master```

0

这是我更新master分支的方式

$ git remote -v
$ git remote rm origin
$ git commit -m "your commit"
$ git remote add origin https://github.com/user/repo.git
$ git push -f origin master

1
尝试以回答问题的方式为您的答案添加解释,并尝试帮助读者理解。目前,它读起来像是一些轶事,甚至在一般情况下也不起作用(例如https://github.com/,网站根目录和git repo)
Kache

-3

有时,您没有用于将分支推回原点的本地REF。
尝试

git push origin master:master

这明确指示要推送到(和从)哪个分支

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.