繁体   English   中英

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

[英]GitHub "fatal: remote origin already exists"

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

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

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

简而言之,

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

工作!

干杯!

首先做一个:

git remote rm origin

然后

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

瞧! 为我工作!

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

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

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

对于那些遇到非常常见的错误“致命:远程原点已经存在。”,或者当尝试删除原点并且您收到“错误:无法删除配置部分 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 等问题。

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

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

git remote set-url origin https://github.com/SriramUmapathy/ReduxLearning.git

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

git remote -v

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

git remote rm origin

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

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

瞧!

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

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

git push -u origin master

告诉 git push我们的代码从本地分支推送到远程存储库

每当我们克隆一个存储库时, 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

简而言之:

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

快乐编码。

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

请按照以下步骤操作:

步骤 1:更新现有遥控器

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

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

git push -f origin master

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

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

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

git init

在 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

使用 git 你必须是

如果没有,那么使用 sudo

删除原点:

git远程删除原点

添加原点:

git 远程添加源http://giturl

尝试这个

  • cd existing_repo
  • git remote rename origin old-origin

请将“git remote add origin git@github.com”中的“add”替换为 git remote set-url origin git@github.com 中的“set-url”

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

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

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

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

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

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

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

不要注意错误并写下:

git push -u 原点主

git remote set-url origin https://username:PERSONAL_ACCESS_TOKEN@github.com:ppreyer/first_app.git
git push -u origin main

您可以在 github 上使用以下步骤生成个人访问令牌:

  • 转到设置
  • 点击开发者设置
  • 单击生成新令牌
  • 生成您的个人访问令牌并将其粘贴到上述命令中。 :)

如果您收到类似“错误:远程源已经存在”的错误。 然后请尝试使用以下命令删除已经存在的远程源

git remote remove origin

然后使用你的命令

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

如果您不想删除现有的远程记录,请更新它

git remote set-url <REMOTE-NAME> <NEW-URL>

然后使用你的命令

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

如果要重命名现有项目,请使用以下命令

git remote rename <old-name> <new-name>

如果你想将你的原始远程重命名为备份。 你只需运行:

git remote rename origin backup

谢谢!!

试试这个对我有用的命令。

rm -rf .git/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM