fatal: 远程 origin 已经存在 | 关于git push 详解

fatal: 远程 origin 已经存在。

解决方法1:删除origin主机名

git remote rm origin #删除
git remote add origin https://github.com/xxxx #添加

解决方法2:保留origin远程主机,再关联另外一个主机

git remote add https://github.com/xxxx.git #关联另一个远程主机

本质:

git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名>,例如 git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名。第一个master是本地分支名,第二个master是远程分支名。

git push -u <远程主机名> <本地分支名>

第一次推送的时候加上-u操作,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。(即,后面推送就不用-u参数)

补充:

git push origin master
如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建
git push origin :refs/for/master
如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin –delete master
git push origin
如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支
git push
如果当前分支只有一个远程分支,那么主机名都可以省略,形如 git push,可以使用git branch -r ,查看远程的分支名
关于 refs/for:
refs/for 的意义在于我们提交代码到服务器之后是需要经过code review 之后才能进行merge的,而refs/heads 不需要

原文地址:https://www.cnblogs.com/cindycindy/p/13518464.html