我想重命名我在GitHub上的一个存储库,但当我看到一个大大的红色警告时说:

我们将不设置任何重定向从旧的位置 您需要更新本地存储库以指向新的位置 重命名可能需要几分钟才能完成

有人知道如何手动完成#1和#2的步骤说明吗?或者我要在当地做什么?


当前回答

It is worth noting that if you fork a GitHub project and then rename the newly spawned copy, the new name appears in the members network graph of the parent project. The complementary relationship is preserved as well. This should address any reservations associated with the first point in the original question related to redirects, i.e. you can still get here from there, so to speak. I, too, was hesitant because of the irrevocability implied by the warning, so hopefully this will save others that delay.

其他回答

It is worth noting that if you fork a GitHub project and then rename the newly spawned copy, the new name appears in the members network graph of the parent project. The complementary relationship is preserved as well. This should address any reservations associated with the first point in the original question related to redirects, i.e. you can still get here from there, so to speak. I, too, was hesitant because of the irrevocability implied by the warning, so hopefully this will save others that delay.

如果你是这个项目的唯一工作人员,这不是一个大问题,因为你只需要做第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

简单的解决方案:

1)打开您的项目url: https://github.com/someuser/project-name 2)在顶部,除了项目名称,点击编辑

这个答案现在已经过时了!GitHub现在将转发到新的位置。 详情请看这个答案。


之所以有这个警告是因为#1不能手动创建。

如果您是唯一一个在存储库上工作并链接到存储库的人,那么您可以在本地回购和web页面中更改远程。

然而,首先在github上有一个公共存储库的原因是,你可以让其他人克隆你的存储库并链接到你的github项目页面。


旧的url github.com/<用户名>/<存储库>归github所有。 当他们不设置任何重定向到新的url,没有人可以。 所以除了你要告诉的人以外,每个人的事情都会破裂。

这个问题有多严重,取决于你自己。 如果你在其他服务器上有官方项目页面, 那么github的url可能不是什么大问题。 如果你在邮件列表和目录中使用github url宣传你的项目, 那么您可能不应该更改回购名称。


更改repo名称的另一种方法是创建一个新的存储库,并在旧的存储库中(也作为repo中的提交)留下关于如何到达新repo的说明。

如果你不想让你的新回购被列为旧回购的一个分支,你需要创建一个新的github账户。 您可以将其他帐户添加为两个存储库的合作者。

请注意,自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)将停止工作。