576

我正在尝试按照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.

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

4

21 回答 21

1089

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
于 2012-06-05T20:28:54.463 回答
418

简而言之,

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

工作!

干杯!

于 2014-10-30T11:30:55.103 回答
44

首先做一个:

git remote rm origin

然后

git remote add origin https://github.com/your_user/your_app.git

瞧!为我工作!

于 2014-11-03T07:53:34.817 回答
39

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

git remote -v

这将返回此格式的列表:

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

这可能会帮助您弄清楚原始“起源”所指的内容。

如果您想保持使用 -v 看到的远程连接,但仍想遵循 Rails 教程,而不必为教程的存储库记住“github”(或其他名称),您可以使用命令:

git remote rename [current name] [new name]

如:

git remote rename origin oldrepo

然后,您应该能够继续您的教程。

于 2013-08-28T20:26:29.183 回答
37

对于那些遇到非常常见的错误“致命:远程原点已经存在。”,或者当尝试删除原点并且您收到“错误:无法删除配置部分 remote.origin”时,您需要做的是手动设置原点。

Window 的 POSH~Git for Windows PowerShell(和 GitHub for Windows 的应用程序)对此有问题。

我遇到了这个,就像我经常做的那样,在设置我的八爪鱼时。所以,这就是我如何让它工作的。

首先,检查您的遥控器:

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

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

因此,手动更改 url:

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)

这已经修复了我遇到的数十个 git repos、GitHub、BitBucket GitLab 等问题。

于 2014-04-03T01:33:10.437 回答
31

在特殊情况下,您从用作模板的旧存储库开始创建新存储库(如果不是这种情况,请不要这样做)。完全擦除旧存储库的 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
于 2016-06-21T19:52:51.340 回答
14

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

git remote -v

现在,如果您想删除远程仓库(例如,来源),那么您可以做的是:

git remote rm origin
于 2015-01-07T05:49:00.383 回答
13

如果原点已经存在,则使用此命令更新原点

git remote set-url origin https://github.com/SriramUmapathy/ReduxLearning.git
于 2020-03-28T03:52:06.533 回答
9

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

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

瞧!

于 2015-12-11T00:31:47.340 回答
8

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

origin是指向该 URL的别名。因此,不是每次我们想要将某些东西推送到我们的存储库时都编写整个 URL,我们只需使用这个别名并运行:

git push -u origin master

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

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

无论是哪种情况,我们都可以随时将此名称更改为我们喜欢的任何名称,运行以下命令:

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

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

通过重命名别名在这里唯一改变的是,每次我们将某些东西推送到我们的存储库时,我们都必须声明这个新名称。

git push -u my-remote-alias master

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

git remote -v

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

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

git remote rm my-remote-alias

简而言之:

  • 找出你已经拥有什么,
  • 删除或重命名它们,
  • 添加您的新别名。

快乐编码。

于 2016-04-29T21:09:01.940 回答
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  
于 2015-07-15T07:06:22.143 回答
6
  • $ git remote add origin git@gitlab.com:abc/backend/abc.git

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

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

    $ 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

于 2018-01-29T06:07:05.007 回答
5

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

git init
于 2017-03-08T09:35:34.807 回答
4

在 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
于 2019-12-03T15:38:59.143 回答
3

使用 git 你必须是

如果没有,那么使用 sudo

删除原点:

git远程删除原点

添加原点:

git 远程添加源http://giturl

于 2016-02-04T08:35:00.513 回答
3

试试这个

  • cd existing_repo
  • git remote rename origin old-origin
于 2018-09-27T16:31:08.577 回答
1

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

请按照以下步骤操作:

步骤 1:更新现有遥控器

git remote set-url origin https://pratik@bitbucket.org/pratik/demoapp.git

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

git push -f origin master

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

于 2022-01-26T08:31:58.190 回答
0

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

然后查看您在哪个存储库中,然后尝试 git remote set-url --add [Then your repositpory link] git push -u origin master

于 2018-03-30T15:16:59.987 回答
0

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

您可以删除旧遥控器并重新添加

git remote remove $1 || true
git remote add $1 $2
于 2019-03-14T12:25:38.637 回答
0

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

  1. 确保“隐藏文件”在您的项目文件夹中可见
  2. 转到 .git 目录
  3. 编辑config.txt文件中的url文件并保存文件!
于 2019-09-26T20:52:26.023 回答
0

不要注意错误并写下:

git push -u 原点主

于 2021-10-06T19:00:23.630 回答