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


97

moodle我的Github帐户上有一个存储库,我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/*

请打印.git / config的内容并在此处添加
pmod 2013年

@pmod:请参阅我更新的问题。
xan 2013年

在本地计算机上克隆的文件夹应包含.git文件夹。
pmod

@xancat $(git rev-parse --show-toplevel)/.git/config
bereal

@pmod:是的,我找到了。请参阅我更新的问题。
xan 2013年

Answers:


115

$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

在此处输入图片说明


git remote -v给: upstream git://git.moodle.org/moodle.git (fetch) upstream git://git.moodle.org/moodle.git (push)
xan 2013年

@xan'上游'是您已分叉的仓库。您缺少起点,这是您在github上的叉子。请参阅stackoverflow.com/a/15632224/6309stackoverflow.com/a/9257901/6309
VonC

如何将叉子变成主人?
Wolfpack'08

@ Wolfpack'08“ fork”表示存储库(具有多个分支)。更改为分支是涉及git开关的本地操作:stackoverflow.com/a/57066202/6309。用您自己的话说,“变叉子为大师”对您意味着什么?更改本地克隆存储库(远程GitHub分支的本地存储库)中的本地分支?
VonC

1
如果您拥有远程仓库,只需按以下步骤即可:git push -u ghy master
VonC

22

当我在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中显示了正确的重命名存储库

[aniket@alok Android]$ git remote -v
origin  ssh://git@github.com/aniket91/TicTacToe.git (fetch)
origin  ssh://git@github.com/aniket91/TicTacToe.git (push)

14

您尝试从中拉出的另一个分支可能不同步;因此,在添加和删除远程尝试之前(如果您要尝试从主机中拉出)

git pull origin master

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

  • 致命:“主”似乎不是git存储库
  • 致命:无法从远程存储库读取。

3

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

git remote add origin URL_TO_YOUR_REPO


2

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

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

今天,我正在通过本地计算机在CRUNCHER的存储库中修改文件。在某个时候,我决定提交文件,所以提交了。添加修改后的文件并进行提交可以按我预期的方式工作,但是当我打电话时,git push我收到了一条类似于问题中所显示的错误消息。

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

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

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


1

当在.git / config中将远程原点设置为路径fs而不是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文件位于同一服务器上。


确实!在/后域必须:,如果使用SSH。只需通过验证git remote -v
Noam Manos
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.