更改从本地计算机 (Rstudio) 上的 github 派生的项目的远程仓库

change remote repo for a project forked from github on local machine (Rstudio)

这个问题似乎很明显,但我在搜索 Whosebug 和互联网的其他角落时似乎找不到直接的答案。

我有一个在本地机器上使用 R studio 的项目。该项目从 Github 上的一个回购开始。我无法推送到这个回购协议,因为它不是我的,而且我没有获得许可。没什么大不了的,我想在 github 上创建一个新的存储库,以保存我对原始存储库和项目当前状态的所有更改。我不能只输入:

git remote add origin https://github.com/user/new_repo.git

因为已经有远程源了。我收到此错误:

fatal: remote origin already exists.

对。这很清楚。来源是我从中提取的原始 github 存储库,也是我不允许更新的存储库,因为它不是我的代码。直截了当。我想将存储库的来源更改为:https://github.com/user/new_repo.git(我刚刚在 github 上设置的新存储库),但保存我修改项目的所有工作历史记录。

如果这是重复的并且我不理解对类似问题的其他回答,我深表歉意。

这应该可以做到。

git remote set-url origin newurl

编辑:

当您使用 git 只读地址进行克隆时(主要是在您未登录时),您将无法获得读写访问权限。

存储库需要更改使用 ssh 推送的方式。按照此 answer 将您的 PC 上的 repo 配置更改为 ssh 方式。

我使用@manishrw 和其他几篇帖子的建议解决了这个问题。我需要做几件事:

首先, 我需要更改 .git/config 文件中的原始遥控器 url。这可以按照@manishrw 的详细说明来完成,实际的 URL 文件路径需要是 ssh://git@github.com/user/new_repo.git。因此,您将从主目录输入:

git remote set-url origin ssh://git@github.com/user/new_repo.git

到目前为止一切顺利。但是,我仍然遇到问题,因为我在一台从未经过身份验证的远程计算机上工作。我会得到错误:

Permission denied (publickey). fatal: The remote end hung up unexpectedly

其次, 为了解决这个问题,我必须在远程机器上为 github 设置我的用户名和电子邮件,然后生成一个 SSH 密钥。我遵循了说明 here,我总结如下:

  1. 在 R studio 中的 shell 设置用户名和电子邮件。这些是您的 github.com 用户名和电子邮件。

    git 配置 --global user.name "your_username" git 配置 --global user.email "your_email@example.com"

  2. 在 RStudio 中,转到菜单工具/全局选项/Git SVN

  3. 单击 "Create RSA key..." 并按照说明进行操作。您可以在此处设置密码,但这不是必需的。

  4. 单击 "view public key" 并复制密钥。

  5. 将密钥复制到您的 Github 帐户设置(编辑配置文件/SSH 密钥/添加 SSH 密钥)。

要检查 ssh 身份验证是否有效,请尝试 运行

ssh -T git@github.com

你应该得到类似

的东西
Hi your_username! You’ve successfully authenticated, but GitHub does not provide shell access. 

现在一切正常。