这个问题似乎很明显,但我在搜索stackoverflow和互联网的其他角落时似乎找不到直接的答案。
我有一个项目,我在本地机器上使用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上设置的新repo),但保存了我修改项目的所有工作历史记录。
道歉,如果这是重复的,我不理解其他对类似问题的回答。
答案 0 :(得分:0)
这应该这样做。
git remote set-url origin newurl
修改强>:
当您使用git只读地址进行克隆时(主要是在您不登录时),您将无法获得读取/写入权限。
存储库需要改变使用ssh推送的方式。按照此answer将PC上的repo配置更改为ssh方式。
答案 1 :(得分:0)
我使用@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的说明进行了操作,我在下面总结了这些说明:
在R studio中的shell上设置用户名和电子邮件。这些是您的github.com用户名和电子邮件。
git config --global user.name“your_username” git config --global user.email“your_email@example.com”
在RStudio中,转到菜单工具/全局选项/ Git SVN
点击“创建RSA密钥...”并按照说明操作。您可以在此处设置密码,但不是必需的。
点击“查看公钥”并复制密钥。
将密钥复制到您的Github帐户设置(编辑个人资料/ SSH密钥/添加SSH密钥)。
要检查ssh身份验证是否有效,请尝试运行
ssh -T git@github.com
你应该得到像
这样的东西Hi your_username! You’ve successfully authenticated, but GitHub does not provide shell access.
现在一切都应该很棒了。