Github"致命:远程起源已经存在"

ppr*_*yer 425 terminal github github-for-mac

我想跟随Michael Hartl的Rails教程,但我遇到了一个错误.

我在Github上注册并发布了一个新的SSH密钥并创建了一个新的存储库.但是当我进入终端的下一行时,我收到以下错误:

Parkers-MacBook-Pro:.ssh ppreyer$ git remote add origin git@github.com:ppreyer/first_app.git
fatal: remote origin already exists.
Run Code Online (Sandbox Code Playgroud)

只是想知道是否有其他人遇到过这个问题?

Agi*_*gis 817

TL; DR你应该只更新现有的遥控器:

$ git remote set-url origin git@github.com:ppreyer/first_app.git
Run Code Online (Sandbox Code Playgroud)

长版:

如错误消息所示,已经配置了具有相同名称的远程.因此,您可以使用其他名称添加新远程,或者在不需要时更新现有远程:

要添加一个新的远程,例如,github而不是origin(显然已经存在于您的系统中),请执行以下操作:

$ git remote add github git@github.com:ppreyer/first_app.git
Run Code Online (Sandbox Code Playgroud)

但请记住,在教程的任何地方,您都会看到"origin",您应该将其替换为"github".例如$ git push origin master,现在应该是$ git push github master.

但是,如果你想看看origin已经存在的是什么,你可以做一个$ git remote -v.如果您认为这是由于某些错误,您可以像这样更新它:

$ git remote set-url origin git@github.com:ppreyer/first_app.git
Run Code Online (Sandbox Code Playgroud)

  • @zespri:使用`git remote set-url --add origin git @ github.com/username/repo.git` (20认同)
  • `git remote rm origin`做得不好.它产生*错误:无法删除配置部分'remote.origin'* (16认同)
  • 为什么原点存在于他的新存储库中?他应该解决问题(确保例如origin是github的正确别名),而不是创建一个他必须提醒的新别名. (5认同)

Man*_*ava 315

简而言之,

git remote rm origin
git remote add origin git@github.com:username/myapp.git
Run Code Online (Sandbox Code Playgroud)

工作了!

干杯!


edu*_*911 36

对于那些遇到如此常见的错误"致命:远程来源已经存在.",或者当试图删除原点而你得到"错误:无法删除配置部分remote.origin"时,你需要做的是手动设置原点.

Window的POSH~Git for Windows PowerShell(和GitHub for Windows'app)有一个问题.

在设置我的章鱼时,我经常遇到这种情况,就像我经常这样做.所以,这就是我如何运作.

首先,检查你的遥控器:

C:\gd\code\octopress [source +2 ~3 -0 !]> git remote -v
octopress       https://github.com/imathis/octopress.git (fetch)
octopress       https://github.com/imathis/octopress.git (push)
origin
Run Code Online (Sandbox Code Playgroud)

你会首先注意到我的起源没有网址.任何删除它,重命名等的尝试都会失败.

所以,手动更改网址:

git remote set-url --add origin https://github.com/eduncan911/eduncan911.github.io.git
Run Code Online (Sandbox Code Playgroud)

然后你可以通过git remote -v再次运行确认它是否有效:

C:\gd\code\octopress [source +2 ~3 -0 !]> git remote -v
octopress       https://github.com/imathis/octopress.git (fetch)
octopress       https://github.com/imathis/octopress.git (push)
origin  https://github.com/eduncan911/eduncan911.github.io.git (fetch)
origin  https://github.com/eduncan911/eduncan911.github.io.git (push)
Run Code Online (Sandbox Code Playgroud)

这已经修复了我遇到的几十个git repos,GitHub,BitBucket GitLab等.

  • 这对我有用.谢谢@ eduncan911.github指令声明要执行"git init"以在命令行上创建新的存储库.这将使用该PS接口创建一个没有URL的原始远程. (2认同)

Mar*_*sel 34

您可以查看配置为通过哪些远程存储库连接

git remote -v
Run Code Online (Sandbox Code Playgroud)

这将以这种格式返回一个列表:

origin  git@github.com:github/git-reference.git (fetch)
origin  git@github.com:github/git-reference.git (push)
Run Code Online (Sandbox Code Playgroud)

这可能会帮助你弄清楚原始的"起源"指向的是什么.

如果你想保留你用-v看到的远程连接,但是仍然想要遵循Rails教程而不必记住教程的repo的'github'(或其他名称),你可以用你的命令重命名你的其他存储库命令:

git remote rename [current name] [new name]
Run Code Online (Sandbox Code Playgroud)

如:

git remote rename origin oldrepo
Run Code Online (Sandbox Code Playgroud)

然后,您应该能够恢复教程.


小智 33

先做一个:

git remote rm origin
Run Code Online (Sandbox Code Playgroud)

然后

git remote add origin https://github.com/your_user/your_app.git
Run Code Online (Sandbox Code Playgroud)

瞧!为我工作!


Wil*_*nao 26

在特殊情况下,您要从用作模板的旧存储库开始创建新存储库(如果不是这种情况,请不要这样做).完全删除旧存储库的git文件,以便您可以开始一个新的存储库:

rm -rf .git
Run Code Online (Sandbox Code Playgroud)

然后像往常一样重新启动一个新的git存储库:

git init
git add whatever.wvr ("git add --all" if you want to add all files)
git commit -m "first commit"
git remote add origin git@github.com:ppreyer/first_app.git
git push -u origin master
Run Code Online (Sandbox Code Playgroud)


小智 24

如果已经存在使用此命令更新源

git remote set-url origin https://github.com/SriramUmapathy/ReduxLearning.git
Run Code Online (Sandbox Code Playgroud)


Pra*_*iya 13

我在远程推送代码时遇到Bitbucket问题

请按照以下步骤操作:

第 1 步:更新现有遥控器

git remote set-url origin https://pratik@bitbucket.org/pratik/demoapp.git
Run Code Online (Sandbox Code Playgroud)

步骤 2:您可以使用此命令强制更改具有本地存储库的服务器。远程仓库代码将替换为您的本地仓库代码。

git push -f origin master
Run Code Online (Sandbox Code Playgroud)

-f通常,该命令拒绝更新不是用于覆盖它的本地引用的祖先的远程引用。


Sam*_*hah 11

如果您需要检查与本地存储库连接的远程存储库,则为cmd:

git remote -v
Run Code Online (Sandbox Code Playgroud)

现在,如果你想删除远程仓库(比如原产地),你可以做的是:

git remote rm origin
Run Code Online (Sandbox Code Playgroud)


var*_*per 7

概念remote只是远程存储库的URL.

origin是指向该URL 的别名.因此,我们不是每次都想要将某些内容写入我们的存储库时编写整个URL,而是使用此别名并运行:

git push -u origin master

告诉push我们从我们的本地分支远程存储库的代码.

每当我们克隆一个存储库时,git默认为我们创建这个别名.每当我们创建一个新的存储库时,我们只需创建它自己.

无论是什么情况,我们总是可以将此名称更改为我们喜欢的任何名称,运行此:

git remote rename [current-name] [new-name]
Run Code Online (Sandbox Code Playgroud)

由于它存储在git应用程序的客户端(在我们的机器上),因此更改它不会影响我们的开发过程中的任何内容,也不会影响我们的远程存储库.请记住,它只是一个指向地址名称.

通过重命名别名来改变这一点的唯一方法是,每当我们将某些东西推送到我们的存储库时,我们必须声明这个新名称.

git push -u my-remote-alias master

显然,单个名称不能指向两个不同的地址.这就是您收到此错误消息的原因.origin在您的本地计算机上已经有一个别名.要查看您拥有多少别名以及它们是什么,您可以启动此命令:

git remote -v
Run Code Online (Sandbox Code Playgroud)

这将显示您拥有的所有别名以及相应的URL.

如果您喜欢运行它,也可以删除它们:

git remote rm my-remote-alias
Run Code Online (Sandbox Code Playgroud)

简而言之:

  • 找出你已经有的东西,
  • 删除或重命名它们,
  • 添加新别名.

快乐的编码.


Cha*_*ash 6

如果你已经为另一个存储添加了项目,比如你上传到 github 然后上传到 bitbucket 那么它会显示这种类型的错误。

如何删除错误:删除项目中的 git-hub 文件,然后重复以下步骤...

git init       
git remote add origin git@bitbucket.org:Yourname/firstdemotry.git  
git add -A  
git commit -m 'Message'  
git push -u origin master  
Run Code Online (Sandbox Code Playgroud)


小智 6

该错误消息表明您的git目录中已有一个遥控器.如果您对该遥控器感到满意,您可以推送您的代码.如果没有,或者如果你不能推动:

git remote remove origin
git remote add origin git@github.com:ppreyer/first_app.git
Run Code Online (Sandbox Code Playgroud)

沃利亚!


For*_*tra 6

  • $ git remote add origin git@gitlab.com:abc/backend/abc.git

    在此命令中,origin 不是命令的一部分,它只是您的远程存储库的名称。您可以使用任何您想要的名称。

    • 首先您可以使用以下命令检查它包含的内容

    $ git remote -v

    它会给你这样的结果 origin git@gitlab.com:abc/backend/abc.git (fetch) origin git@gitlab.com:abc/backend/abc.git (push) origin1 git@gitlab.com:abc/backend/abc.git (fetch) origin1 git@gitlab.com:abc/backend/abc.git (push)

    如果它包含您的远程存储库路径,那么您可以直接推送到该路径而无需再次添加源

    • 如果它不包含您的远程存储库路径

    然后您可以添加具有不同名称的新来源并使用它来推送 $ git remote add origin101 git@gitlab.com:abc/backend/abc.git

    或者您可以重命名现有的原点名称添加您的原点

    git remote rename origin destination

    再次在命令下方开火

    $ git remote -v

    destination git@gitlab.com:abc/backend/abc.git (fetch) destination git@gitlab.com:abc/backend/abc.git (push)

    它将更改您现有的存储库名称,以便您可以使用该源名称

    或者您可以删除现有的原点并添加您的原点

    git remote rm destination


Jan*_* Pi 5

如果在没有初始化git的情况下在目录中运行该命令,也会发生这种情况.如果是这种情况首先运行:

git init
Run Code Online (Sandbox Code Playgroud)


aks*_*hir 5

在 Windows 上使用 git bash 将存储库添加到 git hun 时遇到相同的错误

 git remote add origin https://github.com/axaysushir/netflix_page_clone.git
Run Code Online (Sandbox Code Playgroud)

致命:远程源已存在。

fatal: remote origin already exists.

 ! [rejected]        master -> master (fetch first)
Run Code Online (Sandbox Code Playgroud)

错误:无法将一些参考推送到“ https://github.com/axaysushir/meditation_app_using_js.git

通过以下命令更新存储库

$ git remote set-url origin https://github.com/axaysushir/netflix_page_clone.git
Run Code Online (Sandbox Code Playgroud)

然后使用 git remote add github 而不是 git remote add origin 添加存储库

$ git remote add github https://github.com/axaysushir/netflix_page_clone.git
Run Code Online (Sandbox Code Playgroud)

然后编写以下命令而不是 git push origin master 这会将您的存储库上传到 github

$ git push github master
Run Code Online (Sandbox Code Playgroud)