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

时间:2012-06-05 20:21:20

标签: github terminal github-for-mac

我正在尝试跟随Michael Hartl's Rails tutorial,但我遇到了错误。

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

Parkers-MacBook-Pro:.ssh ppreyer$ git remote add origin git@github.com:ppreyer/first_app.git
fatal: remote origin already exists.

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

19 个答案:

答案 0 :(得分:754)

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

$ git remote set-url origin git@github.com:ppreyer/first_app.git

长版:

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

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

$ git remote add github git@github.com:ppreyer/first_app.git

请记住,在教程的任何地方,您都会看到“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

答案 1 :(得分:285)

简而言之,

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

工作了!

干杯!

答案 2 :(得分:36)

对于遇到这种常见错误的人来说,#fat;致命:远程来源已经存在。",或者在尝试删除原点时,你得到错误:无法删除配置部分remote.origin",您需要做的是手动设置原点。

Window Windows PowerShell的POSH~Git(以及适用于Windows的GitHub'应用程序)存在此问题。

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

首先,检查你的遥控器:

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

您首先要注意我的来源没有网址。任何删除它,重命名等的尝试都会失败。

因此,请手动更改网址:

git remote set-url --add origin https://github.com/eduncan911/eduncan911.github.io.git

然后您可以通过再次运行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)

这已经修复了几十个与GitHub,BitBucket GitLab等有问题的git repos。

答案 3 :(得分:32)

您可以通过

查看配置为连接的远程存储库
git remote -v

这将返回以这种格式的列表:

origin  git@github.com:github/git-reference.git (fetch)
origin  git@github.com:github/git-reference.git (push)

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

如果你想保留你用-v看到的远程连接,但仍想跟随Rails教程而不必记住教程回购的'github'(或其他名称),你可以重命名你的< em>其他存储库使用以下命令:

git remote rename [current name] [new name]

如:

git remote rename origin oldrepo

然后您应该能够恢复教程。

答案 4 :(得分:29)

首先做一个:

git remote rm origin

然后

git remote add origin https://github.com/your_user/your_app.git
瞧,瞧!为我工作!

答案 5 :(得分:23)

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

rm -rf .git

然后像往常一样重启一个新的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

答案 6 :(得分:11)

如果您需要检查哪个远程仓库与您的本地仓库有关联,那么这是一个cmd:

git remote -v

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

git remote rm origin

答案 7 :(得分:7)

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

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

git push -u origin master

告诉我们将本地分支中的代码push发送到远程来源存储库

每当我们克隆存储库时, git 默认为我们创建此别名。每当我们创建新存储库时,我们只需创建它自己。

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

git remote rename [current-name] [new-name]

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

通过重命名别名来改变这一点的唯一方法是,每当我们向存储库推送内容时,我们必须声明此新名称

git push -u my-remote-alias master

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

git remote -v

这将显示您拥有的所有别名以及相应的网址。

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

git remote rm my-remote-alias

简而言之:

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

快乐的编码。

答案 8 :(得分:6)

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

git remote remove origin
git remote add origin git@github.com:ppreyer/first_app.git

Voilà!

答案 9 :(得分:5)

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

git init

答案 10 :(得分:4)

如果您已经为另一个存储添加了项目,就像上传到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  

答案 11 :(得分:3)

使用git你必须

  

如果没有则使用sudo

  

删除原产地:

     

git remote remove origin

用于添加来源:

git remote add origin http://giturl

答案 12 :(得分:3)

使用此命令更新原点(如果已经存在)


def viewCourse (request,pk):
    course = Course.objects.get(id=pk)
    
    FacultyFormset = inlineformset_factory(Course, Course_Faculty, fields=('faculty',))
    formset = FacultyFormset(queryset=Course_Faculty.objects.filter(faculty__groups__name='faculty'), instance=course)
    if request.method == 'POST':
       
        formset = FacultyFormset(request.POST, instance=course)
        if formset.is_valid():
            formset.save()
            
            return redirect('view_course', course_id=course.id)

    formset = FacultyFormset(instance=course)
    context = {
        'course':course,
        'formset': formset
       
    }
    return render(request,'myapp/courseProfile.html',context)

答案 13 :(得分:2)

  • $ 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

答案 14 :(得分:1)

尝试一下

  • cd existing_repo
  • git远程重命名起源old-origin

答案 15 :(得分:1)

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

 git remote add origin https://github.com/axaysushir/netflix_page_clone.git

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

fatal: remote origin already exists.

 ! [rejected]        master -> master (fetch first)

错误:无法将某些引用推送到“ https://github.com/axaysushir/meditation_app_using_js.git

  

通过以下命令更新存储库

$ git remote set-url origin https://github.com/axaysushir/netflix_page_clone.git
  

然后使用git remote add github添加仓库,而不是git remote add origin

$ git remote add github https://github.com/axaysushir/netflix_page_clone.git
  

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

$ git push github master

答案 16 :(得分:0)

首先检查要查看您拥有多少别名以及它们是什么,您可以启动此命令 git remote -v

然后查看您所在的存储库 然后试试 git remote set-url --add [然后你的repositpory链接] git push -u origin master

答案 17 :(得分:0)

至少在bash上,我们可以强制命令的退出代码的返回值为0

您可以删除旧的遥控器,然后重新添加

git remote remove $1 || true
git remote add $1 $2

答案 18 :(得分:0)

如果要通过GUI执行以下操作:

  1. 确保“隐藏文件”在您的项目文件夹中可见
  2. 转到.git目录
  3. 在config.txt文件中编辑url文件并保存该文件!