我正在尝试跟随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.
只是想知道是否有其他人遇到过这个问题?
答案 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)
答案 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)
尝试一下
答案 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执行以下操作: