我想重命名我在GitHub上的一个存储库,但当我看到一个大大的红色警告时说:
我们将不设置任何重定向从旧的位置 您需要更新本地存储库以指向新的位置 重命名可能需要几分钟才能完成
有人知道如何手动完成#1和#2的步骤说明吗?或者我要在当地做什么?
我想重命名我在GitHub上的一个存储库,但当我看到一个大大的红色警告时说:
我们将不设置任何重定向从旧的位置 您需要更新本地存储库以指向新的位置 重命名可能需要几分钟才能完成
有人知道如何手动完成#1和#2的步骤说明吗?或者我要在当地做什么?
当前回答
这个答案现在已经过时了!GitHub现在将转发到新的位置。 详情请看这个答案。
之所以有这个警告是因为#1不能手动创建。
如果您是唯一一个在存储库上工作并链接到存储库的人,那么您可以在本地回购和web页面中更改远程。
然而,首先在github上有一个公共存储库的原因是,你可以让其他人克隆你的存储库并链接到你的github项目页面。
旧的url github.com/<用户名>/<存储库>归github所有。 当他们不设置任何重定向到新的url,没有人可以。 所以除了你要告诉的人以外,每个人的事情都会破裂。
这个问题有多严重,取决于你自己。 如果你在其他服务器上有官方项目页面, 那么github的url可能不是什么大问题。 如果你在邮件列表和目录中使用github url宣传你的项目, 那么您可能不应该更改回购名称。
更改repo名称的另一种方法是创建一个新的存储库,并在旧的存储库中(也作为repo中的提交)留下关于如何到达新repo的说明。
如果你不想让你的新回购被列为旧回购的一个分支,你需要创建一个新的github账户。 您可以将其他帐户添加为两个存储库的合作者。
其他回答
此解决方案适用于使用GitHub桌面的用户。
从GitHub.com上的设置重命名您的存储库 现在在桌面上单击“同步”。
完成了。
我看到很多积极的反馈,但我认为这些反馈并不准确/完整。
有两件事需要记住:
远程存储库 存储库的本地副本
如果你还没有在你的机器上克隆你的回购,你只需要重命名Github存储库,然后继续克隆回购,这样你就可以有一个本地副本。为了重命名Github回购,你只需要:
访问存储库站点(即https://github.com/userX/repositoryZ)。 在导航栏中,你会看到一个名为“设置”的选项卡。点击它。 只需编辑当前存储库名称,并按“重命名”。 像往常一样克隆存储库(即git Clone https://github.com/userX/repositoryU)。
如果您已经有了项目的本地副本,除了遵循上述步骤外,您还需要确保您的本地存储库(根文件夹)被正确地重命名,并且它指向正确的远程url:)链接。为了实现这一目标,请采取以下措施:
你可能想在你的回购中使用新的给定名称。要做到这一点,可以使用OS GUI(Finder, Windows资源管理器等)或控制台重命名本地文件夹:
mv -R current-repo-name new-repo-name
更改远程url。从文件夹的根目录,使用以下命令:
$ git远程设置url来源https://github.com/userX/repositoryU
or
$ git remote set-url origin git@github.com:userX/repositoryU.git
但是,第二步并不是强制性的。Github不久前宣布,他们将重定向所有来自以前存储库url的请求到指定的url。这意味着你不需要使用$ git remote set-url…,但他们仍然鼓励你这样做,以避免混淆。
希望有帮助。如果你有任何问题或帖子不够清楚,请告诉我。
导航到存储库路径。 点击右边窗格中的设置按钮。 将旧的存储库名称替换为新名称。 点击重命名按钮
请注意,自2013年5月以来(“仓库重定向在这里!”),你可以重命名你的GitHub回购而不破坏任何链接:
我们很高兴地宣布,从今天开始,在这种情况下,我们将自动将对以前存储库位置的所有请求重定向到它们的新家。你不需要做什么特别的事情。只要重新命名就行了,剩下的我们会处理。 作为一个特别的奖励,我们还将为所有Git克隆、获取和推送请求提供服务,这些请求来自以前的存储库位置。
这意味着你甚至不需要git远程set-url(改变你的远程GitHub回购的url)在你的本地克隆回购! 尽管Gabriel在评论中指出,GitHub官方帮助页面强烈建议您这样做:
为了减少混乱,我们强烈建议更新任何现有的本地克隆以指向新的存储库URL。你可以通过在命令行上使用git remote来做到这一点:
git remote set-url origin new_url
不过要注意:
GitHub Pages站点在其存储库重命名时不会自动重定向。 重命名Pages存储库将继续破坏到github上托管的内容的任何现有链接。IO域或自定义域。
另外,用户仍然拥有命名空间:如果他/她使用重命名的repo的旧名称创建了一个新的repo,重定向(对于所说的重命名的repo)将停止工作。
如果你是这个项目的唯一工作人员,这不是一个大问题,因为你只需要做第2点。
假设您的用户名是someuser,项目名为someproject。
那么项目的URL将是1
git@github.com:someuser/someproject.git
如果你重命名你的项目,它将改变URL的someproject部分,例如。
git@github.com:someuser/newprojectname.git
(如果您的URL不像这样,请参阅脚注)。
当您执行推或拉操作时,Git的工作副本将使用此URL。
因此,在重命名项目后,必须将新URL告知工作副本。
你可以分两步完成:
首先,cd到你的本地Git目录,并找出哪些远程名称指向该URL:
$ git remote -v
origin git@github.com:someuser/someproject.git
然后,设置新的URL
$ git remote set-url origin git@github.com:someuser/newprojectname.git
或者在旧版本的Git中,你可能需要:
$ git remote rm origin
$ git remote add origin git@github.com:someuser/newprojectname.git
(origin是最常见的远程名称,但也可能称为其他名称。)
但如果有很多人都在为你的项目工作,他们都需要执行上述步骤,也许你甚至不知道如何联系他们并告诉他们。这就是第一条。
进一步阅读:
GitHub -使用遥控器 Git参考-遥控器 Git书籍分布式工作流
脚注:
URL的确切格式取决于你使用的协议。
一些东西/一些项目 HTTPS = https://someuser@github.com/someuser/someproject.git //github.com/someuser/someproject.git