Git推送错误:“来源似乎不是git存储库”


69

我正在按照此处给出说明创建Git存储库。一切顺利,直到最后一行:

$ git push -u origin master  

致命:'origin'似乎不是git存储库
致命:远端意外挂断

我在OS X 10.6.8上使用git版本1.7.11.3

$ git remote -v  

什么都不返回

存储库的配置文件:

[core]
repositoryformatversion = 0  
filemode = true  
bare = false
logallrefupdates = true  
ignorecase = true  

我不得不使用sudo visudo命令打开sudoers文件,并将以下内容添加到该文件中(在#用户权限规范下):

git ALL=(ALL) ALL.  

现在,如果我这样做:

$ git remote add origin /Volumes/500GB/git-repository/myproject.git  

它返回没有错误,但是我在存储库中看不到任何代码(它具有上述目录,例如分支,钩子等)

如果我做:

$ git push -u origin master  
fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

$ git remote -v   
origin /Volumes/500GB/git-repository/myproject.git (fetch)     
origin /Volumes/500GB/git-repository/myproject.git (push)

1
相当常见的错误。看看这个线索的帮助:stackoverflow.com/questions/10068172/...
tymeJV

2
命令“ git remote -v”的输出是什么?
brimble2010

您的说明链接不见了,您还记得吗?

Answers:


64

正如在che的答案中提到有关添加远程部分的内容中提到的那样,我相信您仍然会丢失。

关于您在本地USB驱动器上添加遥控器的编辑。首先,如果您希望您的存储库成为共享存储库,则必须具有“裸存储库”,即能够推/拉/取/合并等。

要创建裸露/共享的存储库,请转到所需的位置。在您的情况下:

$ cd /Volumes/500gb/   
$ git init --bare myproject.git

有关创建裸仓库的更多信息,请参见此处

在所需位置建立裸存储库后,现在可以将其作为远程添加到工作副本中。

$ git remote add origin /Volumes/500gb/myproject.git

现在您可以将更改推送到存储库

$ git push origin master

24

以下是来自github的说明:

touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/tqisjim/google-oauth.git
git push -u origin master

这实际上是有效的:

touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/tqisjim/google-oauth.git
git clone origin master

克隆后,通过提示输入用户名和密码,push命令成功


作品如魅力
Dheeraj M Pai

19

很可能远程存储库不存在,或者您添加了错误的存储库。

您必须首先删除原点,然后重新添加它:

git remote remove origin
git remote add origin https://github.com/username/repository

12

您的配置文件不包含对“原始”远程的任何引用。该部分如下所示:

[remote "origin"]
    url = git@foo.com:repository.git
    fetch = +refs/heads/*:refs/remotes/origin/*

您需要先添加遥控器,git remote add然后才能使用它。


在git中,您之所以进行推送是因为您希望将代码发送到其他代码,而不是正在处理的代码。如果您只想拥有一个本地git存储库,那么您已经完成了。如果你想要的东西ALSE你可能想看看一些教程远程解释和当地回购,可能是从这里开始的:git-scm.com/book/en/Getting-Started-Git-Basics

我想要2个代码副本。一个在Mac的硬盘驱动器上(工作目录),另一个在外部USB驱动器上(Git目录)。如果我有执行步骤的代码的2份副本(即,除了原始帖子中的最后一个,其余所有内容),那么我就完成了。但是,在外部USB驱动器上看不到任何源代码。我看到一个目录结构,其中包含分支,挂钩,信息,对象,引用等目录,但没有源代码。
Al Lelopath

好吧,如果您缺少远程仓库,则可能没有完成git remote add最初链接的指南中的部分。无论如何,如果您成功推送到另一个存储库,它将不会自动进行检出,您必须在存储库中手动执行此操作(但不必这样做,因为文件仍将存在于git结构中)。也看到这个答案:stackoverflow.com/a/1887474/7806

6

当你创建一个存储库bitbucket.org,它给你如何设置你的本地目录的说明。很有可能,您只是忘了运行代码:

git remote add origin https://username@bitbucket.org/username/reponame.git


5

可能您忘了git --bare init在遥控器上运行“ ”吗?那是我的问题


3

我的情况有些不同-无意中我更改了git存储库的所有者(本例中为project.git目录),将所有者更改回git用户有帮助



3

我仍然很谦虚地分享我的简短回答,因为我回答这个问题太迟了。

这是一个简单明了的解释,解决了我的问题

另外,由于我使用的是SSH密钥,因此使用了以下命令:

  • $ git remote add origin git@github.com:{your-username} / {your-remote-repo-branch}

例如,它看起来像:

  • $ git remote add origin git@github.com:aniketrb-github / microservices.git

如果您使用的是HTTPS URL,请参考上面@ sunny-jim提供的答案。

如果我错了,请纠正我。谢谢。


2

我有这个问题,因为我已经在本地定义了源远程。因此,只需将“ origin ”更改为另一个名称:

git remote add originNew https://github.com/UAwebM ...

git push -u origin新

或者您可以删除您的本地血统。检查您的远程名称类型:

git远程

删除远程-登录克隆存储库并键入:

git remote remove origin(取决于您的遥控器名称)


1

为了解决这个问题,我只是创建一个新文件夹并放置一些新文件,然后使用这些通用文件。

* git add .
* git commit 
* git remote add master `your address`

然后它告诉我登录。输入您的用户名和密码。之后

git pull 
git push origin master

完成您已将代码推送到github



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.