Git push:“致命'来源'似乎不是一个git存储库 - 致命无法从远程存储库中读取。”

时间:2015-08-27 00:03:42

标签: git github version-control branch

我知道已经提出了类似的问题。

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

一切顺利,我可以:

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

然而,在某些时候,我在本地创建了一个名为add-calendar-model的新分支,以防应用程序开发的后续步骤向南...

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

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

因此,我决定从GitHub手动删除本地存储库和git clone我的master分支中的所有文件。

这样,我恢复了所有文件,但现在,我无法再将其推送到远程存储库。

每当我尝试运行git push origin add-calendar-modelgit 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不太满意,你可能已经猜到了,我不得不承认我对如何解决这个问题一无所知。

有什么想法吗?

11 个答案:

答案 0 :(得分:148)

首先,检查您的来源是否已设置

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

答案 1 :(得分:9)

对我有用。

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

将存储库URL添加到本地工作目录中的原始位置

答案 2 :(得分:8)

Matt Clark如上所述

但是,可能没有设置原点,因此跳过删除步骤只需尝试添加就可以清除它。

git remote add origin <"clone">

“克隆”只是进入你的GitHub仓库并复制“HTTPS克隆URL”并粘贴到GitBash

答案 3 :(得分:2)

确保.git上的配置文件正确...检查网址&amp;确保您使用正确的密钥协议 ... ProjectWorkspace /的.git /配置

  ~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

我们正在查看网址...  例如:对于bitbucket,期待git@bitbucket.org ....如果是gitbucket.org。做出必要的改变.. 保存 再试一次。

答案 4 :(得分:1)

如果您使用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```

答案 5 :(得分:1)

对我来说,解决此问题的方法是重新设置原始网址:

git remote set-url origin https://github.com/username/example_repo.git

然后我能够成功git push我的项目。即使我用git remote -v查看我的来源时,我也必须这样做,因为这些网址与我将其重新设置为相同的网址。

答案 6 :(得分:1)

这两个步骤对我有用!

第 1 步:

git remote set-url origin https://github.com/username/example_repo.git

第 2 步:

git push --set-upstream -f origin main

第 3 步:

你的 github 用户名和密码

在第 2 步中,实际上需要 -f,因为 rebase,引用此 post

答案 7 :(得分:0)

从原点拉取更改时出现类似错误。 如果您从菜单选项中尝试使用Intellij,则拉动可能无法直接起作用。

转到终端并输入此命令,这应该可以解决: git pull origin master

答案 8 :(得分:0)

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

git push origin master:master

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

答案 9 :(得分: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

答案 10 :(得分:0)

这是我更新master分支的方式

这种错误通常在删除项目的初始代码后发生

因此,首先,请验证实际的远程版本,然后删除原始来源并添加注释,然后将回购URL复制到项目文件中。

$ 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