远程源已存在于“ git push”到新存储库中


548

我的项目在GitHub的某个位置git@github.com:myname/oldrep.git

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

我使用了命令:

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

但我收到这个:

致命:远程来源已经存在。


6
给出命令的输出$> git remote -v show
sykora


如果您知道旧存储库的URL,一种好方法是在新创建的存储库底部使用“从另一个存储库导入”
JW.ZG

在这里问了类似的问题:stackoverflow.com/questions/2432764/…–
jciloa

1
如果要保留原始的远程名称git remote add origin2 ....,则可以简单地使用其他名称,但是如果只需要推送一次而无需修改存储库配置,则可以简单地使用git push git@github.com:user/another-project.git master:master
ccpizza

Answers:


870

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

例如,您还可以编写:

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

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

git remote rm origin

同样,如果要删除“上游”远程服务器,则“ origin”是远程存储库的名称:

git remote rm upstream

8
“ git remote rm origin”对我不起作用,如果对您不起作用,请尝试使用“ git remote -v”进行检查,这将向您显示您的起源是否设置了URL,是否不太可能在本地进行了初始化,并试图将其远程推送,并像我一样犯了一个错误。然后遵循RobinH的答案:git remote set-url origin git@github.com:username / projectname.git
Clarence Liu

1
检查此答案为了强制URL。
srodriguex 2014年

“ git remote rm origin”发挥了作用,真是太好了!:) puhh,我是git术语的新手,所以它的搜索范围更大,但是您的回答对我很有帮助。:) 谢谢!
Martin Pfeffer 2014年

3
git push -u origin master --force
罗尼·罗斯顿

--force是解决方案!
创作者

260

先前的解决方案似乎忽略了起源,它们仅建议使用其他名称。当您只想使用时git push origin,请继续阅读。

出现问题是因为遵循了错误的Git配置顺序。您可能已经在.git配置中添加了“ git origin”。

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

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

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


7
谢谢,正是我要做的:)
winkbrace 2013年

这对我来说很烦。但是真正帮助我解决此问题的原因是,因为我使用了与Gihub一起安装的Windows便携式Portable。我在这里
PerseP 2014年

大!我需要将我繁琐的仓库改成git lab仓库,这个解决方案是完美的!谢谢!
Marcelo dos Santos

与OP相同的情况,我需要执行此操作,然后执行@MrHus的解决方案。
肖恩·比恩

4
恕我直言,这是最好的答案
kratos

83

如果您将本地名称错误地命名为“ origin”,则可以使用以下命令将其删除:

git remote rm origin

“错误地将本地名称命名为'origin'”的实际含义是什么?您能详细解释一下吗?@Ozgur
Yuan Wen

1
这可能意味着您添加了不指向git存储库的远程源。因此,如果您打算将所有更改推送到主服务器,则git会抱怨说远程源不是git存储库。
Gautham Honnavara '17

22

方法1->

由于起源已经存在,请将其删除。

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

方法2->

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

如果您要更新以使用HTTPS

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

如果您要更新以使用SSH

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

如果尝试更新不存在的遥控器,则会收到错误消息。所以要小心。

方法3->

使用git remote named命令重命名现有的远程服务器。现有的远程名称,例如origin。

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

验证遥控器的新名称->

git remote -v

如果不熟悉Git,请尝试使用本教程->

尝试GIT教程


1
非常感谢。我被下载了,其他人是git,然后也想将其克隆到我的GitHub中。最后,我成功使用了您的第一种方法。
Naimur Hasan

17

您只需在文本编辑器中编辑配置文件即可。

~/.gitconfig你需要把东西下面:

[user]
        name  = Uzumaki Naruto
        email = myname@example.com

[github]
        user = myname
        token = ff44ff8da195fee471eed6543b53f1ff

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

[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)。


10
  1. git remote rm origin

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

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

  4. git push origin master 它将开始该过程并创建新分支。您可以看到您的工作已推送到github。


8

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

git远程添加github git@github.com:myname / oldrep.git


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

6

我遇到了同样的问题,这是经过一些研究后如何解决的:

  1. 下载适用于Windows的GitHub或使用类似的东西,其中包括一个shell
  2. Git Shell从任务菜单中打开。这将打开包含Git命令的电源外壳。
  3. 在外壳中,切换到旧的存储库,例如 cd C:\path\to\old\repository
  4. 显示旧资料库的状态

  5. 现在,使用以下命令从本地存储库中删除远程存储库

    git remote rm origin
    
  6. 再次检查步骤4。它应该origin仅显示,而不是提取和推送路径。

  7. 现在您的旧远程存储库已断开连接,您可以添加新的远程存储库。使用以下内容连接到新的存储库。

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

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

而已。


5

我第一次使用Bitbucket进行设置时遇到了同样的问题

我的问题是我需要将单词origin更改为自定义。我使用了应用程序的名称。所以:

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

4

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

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

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

我认为这应该有效。

是的,这些用于存储库初始化和添加新的远程。只是更改名称。


3

您还可以在REPOHOME / .git / config文件中更改希望推送到的存储库名称

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



0

您需要检查origin并添加(如果不存在)。

if ! git config remote.origin.url >/dev/null; then
    git remote add origin git@github.com:john/doe.git
fi

创建文件check.sh,粘贴脚本以更新git存储库URL并运行./check.sh



-1

首先,为删除的遥控器编写以下代码:

$ git remote rm origin

然后写这一行:

$ git remote add origin https://github.com/khadim321/React-Form.git

工作正常。


请尝试提供更多解释,以便为您的答案提供更多价值
Zeina

我不确定它是否可以帮助某人添加您的github存储库之一作为远程来源。这个问题已经回答了几次。在创建一个质量如此低的新书之前,请检查另一个问题。
thmspl

-1

如果您要在github中使用相同的项目创建一个新的存储库,并且在这种情况下,以前的Remote不允许您执行此操作,请先在github上删除该存储库,然后只需删除.git文件夹C:\ Users \ Shiva \ AndroidStudioProjects \ yourprojectname \ .git 删除该文件夹,(确保您单击了隐藏文件,因为此文件夹已隐藏)

还可以从android studio设置-> VersionControl上单击减号(“删除”按钮), 单击此处以从android中删除Version控件,然后就可以创建新的存储库。

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.