关于github:远程源已经存在于’git push’到新的存储库中

Remote origin already exists on 'git push' to a new repository

我在Github的某个地方有我的项目,git@github.com:myname/oldrep.git

现在,我想将所有代码推送到其他位置的一个新的存储库,git@github.com:newname/newrep.git

我使用命令:

git remote add origin git@github.com:myname/oldrep.git

但我收到了:

fatal: remote origin already exists.

  • 给出命令的输出$>git remote-v show
  • GitHub"致命:远程来源已经存在"的可能副本
  • 一个好方法是在新创建的存储库的底部使用"从另一个存储库导入",前提是您知道旧存储库的URL。
  • 这里也提出了类似的问题:stackoverflow.com/questions/2432764/…
  • 如果你想保持原来的遥控器,你可以简单地使用一个不同的名称git remote add origin2 ....,但是如果你只需要推一次而不修改repo配置,那么你可以简单地执行git push git@github.com:user/another-project.git master:master


您收到此错误是因为"来源"不可用。"origin"是一个约定,不是命令的一部分。origin"是远程存储库的本地名称。

例如,你也可以写:

1
2
git remote add myorigin git@github.com:myname/oldrep.git  
git remote add testtest git@github.com:myname/oldrep.git

请参阅手册:

网址:http://www.kernel.org/pub/software/scm/git/docs/git-remote.html

要删除远程存储库,请输入:

1
git remote rm origin

同样,"origin"是远程存储库的名称,如果您想移除"上游"遥控器:

1
git remote rm upstream

  • "git-remote-rm-origin"不适用于我,如果它不适用于您,请尝试检查"git-remote-v",这将显示您的origin是否设置了URL,如果它不太可能是您在本地执行的init,并尝试将其远程推送,并犯了类似我这样的错误)。然后按照robinh的回答:git remote set url origin git@github.com:username/projectname.git
  • 检查此答案以强制URL。
  • "吉特远程RM起源"像一个魅力,太棒了!:)puhh,我对git的术语不太熟悉,所以这是一个更大的搜索,但你的回答对我帮助很大。谢谢!
  • git push -u origin master --force
  • --力量就是解决方案!


以前的解决方案似乎忽略了来源,它们只建议使用另一个名称。当你只想使用git push origin时,继续阅读。

出现此问题是因为遵循了错误的git配置顺序。您可能已经在.git配置中添加了"git源站"。

您可以使用以下行更改Git配置中的远程源站:

1
git remote set-url origin git@github.com:username/projectname.git

此命令为要推送到的Git存储库设置新的URL。重要的是填写自己的用户名和项目名称

  • 谢谢,正是我要做的:)
  • 这是为我准备的。但真正帮助我解决这个问题的是,我的用户portablegit安装了gihub for windows。我在这里找到了解决方案
  • 只是我需要的
  • 伟大的!我需要将我的gitorious repo更改为git lab repo,这个解决方案非常完美!谢谢您!
  • 和OP的情况一样,我需要这样做,然后是@mrhus的解决方案。
  • 这是最好的答案
  • 如果有人获得了权限错误,您可能需要像我必须使用的那样使用此的HTTPS版本。会是这样的:git remote set-url origin https://github.com//.git
  • 工作得很有魅力


如果您错误地将本地名称命名为"origin",可以使用以下命令删除它:

1
git remote rm origin

  • "错误地将本地名称命名为"origin"实际上是什么意思?你能详细解释一下吗?@ Ozgur
  • 这可能意味着您添加了不指向Git存储库的远程源站。因此,如果您计划将所有更改推送到master,那么git会抱怨说远程源站不是git存储库。


方法1->

因为原点已经存在,所以移除它。

1
2
git remote rm origin
git remote add origin https://github.com/USERNAME/REPOSITORY.git

方法2->

还可以通过->git remote set url更改现有的远程存储库url。

如果要更新以使用https

1
git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

如果要更新以使用ssh

1
git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

如果尝试更新不存在的远程程序,您将收到一个错误。所以小心点。

方法3->

使用git remote rename命令重命名现有远程。现有的远程名称,例如,origin。

1
2
git remote rename origin startpoint
# Change remote name from 'origin' to 'startpoint'

验证遥控器的新名称->

1
git remote -v

如果是Git新手,请尝试本教程->

试用Git教程


您可以在文本编辑器中简单地编辑配置文件。

~/.gitconfig中,您需要输入如下内容:

1
2
3
4
5
6
7
[user]
        name  = Uzumaki Naruto
        email = myname@example.com

[github]
        user = myname
        token = ff44ff8da195fee471eed6543b53f1ff

oldrep/.git/config文件中(在存储库的配置文件中):

1
2
3
4
[remote"github"]
        url = git@github.com:myname/oldrep.git
        push  = +refs/heads/*:refs/heads/*
        push  = +refs/tags/*:refs/tags/*

如果存储库的配置文件中有一个远程部分,并且URL匹配,则只需添加推送配置。如果使用公共URL进行获取,则可以将推送的URL作为"pushURL"(警告:这需要刚刚发布的Git版本1.6.4)。


您不必删除现有的"源站"遥控器,只需为远程添加使用"源站"以外的名称,例如。

git remote添加github git@github.com:myname/oldrep.git


我也遇到了同样的问题,下面是我在做了一些研究之后如何解决的:

  • 下载GitHub for Windows或使用类似的工具,其中包括shell
  • 从任务菜单打开Git Shell。这将打开一个包含git命令的power shell。
  • 在shell中,切换到旧的存储库,例如cd C:\path\to\old
    epository
  • 显示旧存储库的状态

    • 键入git remote -v以获取用于获取和推送远程的远程路径。如果本地存储库连接到远程存储库,它将显示如下内容:

      来源https://user@bitback.org/team-or-user-name/myproject.git(fetch)来源https://user@bitback.org/team-or-user-name/myproject.git(push)

    • 如果没有连接,可能只显示origin

  • 现在,通过使用从本地存储库中删除远程存储库

    1
    git remote rm origin
  • 用步骤4再次检查。它应该只显示origin,而不显示fetch和push路径。

  • 现在,旧的远程存储库已断开连接,您可以添加新的远程存储库。使用以下方法连接到新的存储库。

  • 注意:如果您使用的是BitBucket,您将首先在BitBucket上创建一个项目。创建完成后,bitback将显示将存储库推送到远程所需的所有git命令,这类似于下一个代码片段。然而,这也适用于其他存储库。

    1
    2
    3
    cd /path/to/my/repo # If haven't done yet
    git remote add mynewrepo https://user@bitbucket.org/team-or-user-name/myproject.git
    git push -u mynewrepo master # To push changes for the first time

    就是这样。


    1
    2
    git remote rm origin
    git remote add origin git@github.com:username/myapp.git

    我第一次使用bitback时也遇到了同样的问题。

    我的问题是,我需要改变一些自我定义的词的来源。我用了申请的名字。所以:

    1
    git remote add AppName https://someone@bitbucket.org/somewhere/something.git

    您应该将远程存储库的名称更改为其他名称。

    1
    git remote add origin git@github.com:myname/oldrep.git

    1
    git remote add neworigin git@github.com:myname/oldrep.git

    我认为这应该管用。

    是的,这些是用于repository init和添加新的远程。只是换了个名字。


    还可以在rephome/.git/config文件中更改要推送的存储库名称。

    (其中rephome是存储库的本地克隆的路径)。


  • git remote rm origin

  • git remote -v它不会显示任何存储库名称

  • git remote add origin git@github.com:username/myapp.git

  • git push origin master它将启动流程并创建新的分支。你可以看到你的工作被推到了Github。


  • 打开Android Studio>VCS>Git>Remotes删除将在此部分中显示的所有地址。问题会解决的。

    形象


    当您忘记进行第一次提交时,也可能发生这种情况。