Git 推送:“致命的 'origin' 似乎不是 git 存储库 - 致命的无法从远程存储库读取。”
Posted
技术标签:
【中文标题】Git 推送:“致命的 \'origin\' 似乎不是 git 存储库 - 致命的无法从远程存储库读取。”【英文标题】:Git push: "fatal 'origin' does not appear to be a git repository - fatal Could not read from remote repository."Git 推送:“致命的 'origin' 似乎不是 git 存储库 - 致命的无法从远程存储库读取。” 【发布时间】:2015-11-21 04:49:09 【问题描述】:我知道已经有人问过类似的问题。
但是,我认为我的问题是由于我之前犯过的错误造成的,因此有所不同:让我解释一下。
一切顺利,尽我所能:
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-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 的初始化位置,然后再试一次。 【参考方案1】:首先,检查您的 origin 是否已通过运行设置
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 main
# you need to use
$git push myOrigin main
如果要重命名遥控器或更改遥控器的 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 main
【讨论】:
它在git@example.com:1234/myRepo.git
前面没有ssh://
对我有用
如果您也可以帮助解决新的存储库推送错误,我正在阅读这个问题?
我将我的远程分支从上游重命名为原点并导致错误,在使用git remote remove origin
完全删除远程引用然后使用git remote add origin <url>
再次添加它之后它工作正常【参考方案2】:
它对我有用。
git remote add origin https://github.com/repo.git
git push origin master
将存储库 URL 添加到本地工作目录中的源
【讨论】:
【参考方案3】:正如马特克拉克上面所说的
但是,原点可能没有设置,所以跳过删除步骤,简单地尝试添加就可以清除它。
git remote add origin <"clone">
“克隆”只是进入您的 GitHub 存储库并复制“HTTPS 克隆 URL”并粘贴到 GitBash 中
【讨论】:
【参考方案4】:这是我更新主分支的方式
在你的项目中删除初始代码后通常会出现这种错误
所以,继续,首先,验证实际远程版本,然后删除源添加注释,并将 repo 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
【讨论】:
尝试以解决问题并试图帮助读者理解的方式为您的答案添加解释。目前,它只是读起来像一些轶事,甚至在一般情况下都不起作用(例如,https://github.com/
是网站根目录和 git repo)【参考方案5】:
确保 .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
我们正在查看网址... 例如:对于 bitbucket,期望 git@bitbucket.org....如果是 gitbucket.org。进行必要的更改.. 保存 再次尝试推送。
【讨论】:
【参考方案6】:如果您使用 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```
【讨论】:
【参考方案7】:从源中提取更改时会出现类似的错误。 如果您从菜单选项中尝试使用 Intellij,则 pull 可能无法直接工作。
转到终端并键入此命令,这应该可以解决: git pull origin master
【讨论】:
【参考方案8】:为我解决这个问题的是重新设置我的原始网址:
git remote set-url origin https://github.com/username/example_repo.git
然后我能够成功地git push
我的项目。即使当我使用git remote -v
查看我的来源时,我也必须这样做,网址与我重新设置的相同。
【讨论】:
【参考方案9】:这两个步骤对我有用!
第 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。
【讨论】:
【参考方案10】:问题很可能是您的远程来源未设置。
git add .
git commit -m "Your commit message"
git remote add origin https://repositoryurlpath.git
git push origin master
额外提示:
检查是否设置了远程原点
git remote -v
重置远程源
git remote remove origin
git remote add origin https://repositoryurlpath.git
【讨论】:
【参考方案11】:我有同样的问题。当我检查我的配置文件时,我注意到 '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
【讨论】:
【参考方案12】:有时您没有用于将该分支推回原点的本地 REF。 试试
git push origin master:master
这明确指示要推送到(和从)哪个分支
【讨论】:
以上是关于Git 推送:“致命的 'origin' 似乎不是 git 存储库 - 致命的无法从远程存储库读取。”的主要内容,如果未能解决你的问题,请参考以下文章