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

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

我在Github的某个地方有我的项目,[email protected]:myname/oldrep.git

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

我使用命令:

git remote add origin [email protected]:myname/oldrep.git

但我收到了:

fatal: remote origin already exists.


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

例如,你也可以写:

1
2
git remote add myorigin [email protected]:myname/oldrep.git  
git remote add testtest [email protected]: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 push origin时,继续阅读。

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

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

1
git remote set-url origin [email protected]:username/projectname.git

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


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

1
git remote rm origin


方法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 [email protected]: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 = [email protected]

[github]
        user = myname
        token = ff44ff8da195fee471eed6543b53f1ff

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

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

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


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

git remote添加github [email protected]:myname/oldrep.git


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

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

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

      来源https://[email protected]/team-or-user-name/myproject.git(fetch)来源https://[email protected]/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://[email protected]/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 [email protected]:username/myapp.git

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

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

    1
    git remote add AppName https://[email protected]/somewhere/something.git

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

    1
    git remote add origin [email protected]:myname/oldrep.git

    1
    git remote add neworigin [email protected]:myname/oldrep.git

    我认为这应该管用。

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


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

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


  • git remote rm origin

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

  • git remote add origin [email protected]:username/myapp.git

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


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

    形象


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