117

我的moodleGithub 帐户上有一个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/config做完之后的内容cat $(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/*
4

8 回答 8

138

$HOME/.gitconfig是你的 git全局配置。配置文件分为
三个级别

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

(由bereal提到)是您的本地配置,是您克隆的仓库的本地配置。

你也可以在你的仓库中输入:

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缺少 ' ':对你的fork 的引用。
请参阅“在 github之间有什么区别originupstream

在此处输入图像描述

于 2013-03-26T13:13:04.097 回答
26

当我在 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)
于 2013-11-11T14:21:44.707 回答
16

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

git pull origin master

对我来说,这个简单的调用解决了这些错误消息:

  • 致命:“master”似乎不是 git 存储库
  • 致命:无法从远程存储库中读取。
于 2016-03-21T11:46:28.903 回答
5

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

git 远程添加源 URL_TO_YOUR_REPO

于 2020-03-17T13:20:06.333 回答
3

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

git remote -v

git init the repo URL

git remote add origin the repo URL

git push -f origin master
于 2021-06-02T09:10:30.793 回答
2

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

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

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

原因是,我push从本地的 CRUNCHER 的 repo 中调用。因此,配置文件中的所有路径都是错误的。

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

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

于 2014-05-15T16:30:59.660 回答
1

将远程源设置为路径fs而不是.git/config中的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 或密码)的用户):

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

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

于 2016-03-16T16:13:17.190 回答
1

100% 有效。

首先确保项目根目录中没有隐藏的 git 文件夹,如果有则将其删除。然后打开命令外壳并执行以下命令:

git init -b main

git add .   //This is very important and it adds the files in the local repository and stages them for commit.

git commit -m "First commit"

git remote add origin  <REMOTE_URL>  //REMOTE_URL: the repository address in github.com 

git remote -v  //Verifies the new remote URL

git push origin main

就是这样。您还可以在GitHub 文档中阅读有关此内容的更多信息

于 2021-11-21T05:58:41.027 回答