如何重命名 GitHub 上的存储库?

Posted

技术标签:

【中文标题】如何重命名 GitHub 上的存储库?【英文标题】:How do I rename a repository on GitHub? 【发布时间】:2011-08-10 17:31:31 【问题描述】:

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

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

有没有人有关于如何手动完成 #1 和 #2 的分步说明?或者我必须在本地做什么?

【问题讨论】:

在 Github repo 重命名后,您不再需要更新本地 reop。见my answer below。 在 Bitbucket 上,您转到存储库设置并更改名称,然后在本地计算机上,也在 .git/config 文件中进行更改。 打开回购 -> 设置 -> 重命名 【参考方案1】:

如果您是该项目的唯一工作人员,这不是什么大问题,因为您只需要执行 #2。

假设您的用户名是 someuser,而您的项目名为 someproject

那么你的项目的 URL 将是1

git@github.com:someuser/someproject.git

如果您重命名您的项目,它将更改 URL 的 someproject 部分,例如

git@github.com:someuser/newprojectname.git

(如果您的网址与此不同,请参阅脚注)。

当您执行 pushpull 时,您的 Git 工作副本会使用此 URL。

因此,在您重命名项目后,您必须告诉工作副本新的 URL。

您可以分两步完成:

首先,cd 到您的本地 Git 目录,并找出哪些远程名称引用了该 URL:

$ git remote -v
origin  git@github.com:someuser/someproject.git

然后,设置新的网址

$ 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 是最常见的远程名称,但它可能被称为其他名称。)

但是如果有很多人在为您的项目工作,他们都需要执行上述步骤,也许您甚至不知道如何联系他们告诉他们。这就是 #1 的意义所在。

进一步阅读:

GitHub - working with remotes Git Reference - remotes Git Book - Distributed Workflows

脚注:

1 URL 的确切格式取决于您使用的协议,例如

SSH = git@github.com:someuser/someproject.git HTTPS = https://someuser@github.com/someuser/someproject.git GIT = git://github.com/someuser/someproject.git

【讨论】:

感谢您的回复!对于#1,我没有任何链接到回购的网页。所以我安全了?对于#2,那里到底发生了什么?谢谢! 我添加了更多关于遥控器的信息,应该会有所帮助。 我的git remote -v 输出格式为git@github.com:someuser,你放在这里的正斜杠对我不起作用。不过,这里的其他一切都做了。 谢谢。固定的。我仍然需要找到一种方法来提及 https 和 git URL。 这会影响 repo 的统计信息,比如星星数吗?【参考方案2】:

值得注意的是,如果你 fork 一个 GitHub 项目,然后重命名新生成的副本,则新名称会出现在父项目的成员网络图中。互补关系也得以保留。这应该解决与原始问题中与重定向相关的第一点相关的任何保留,也就是说,您仍然可以从那里到达这里。我也因为警告暗示的不可撤销性而犹豫不决,所以希望这可以避免其他人的延迟。

【讨论】:

你不能在 github 上 fork 自己的项目。所以你必须使用另一个帐户,但这会起作用。 我 fork 到一个组织,所以我想这与使用另一个帐户相同。我相信你是对的。 您可以创建一个新的空存储库。克隆旧存储库。添加一个远程引用您的新存储库。然后将你想要的分支推送到新的存储库(例如 master)。我想那将是部分分叉。【参考方案3】:

此答案现已过时! GitHub 现在将转发到新位置。 详情请见this answer。


出现此警告的原因是因为 #1 无法手动制作。

如果您是唯一一个处理并链接到存储库的人,那么您可以在本地存储库和网页中更改远程。

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


旧网址github.com/<username>/<repository> 归 github 所有。 当他们没有设置任何重定向到新网址时,没有人可以。 因此,除了您要告诉的人之外,每个人都会遇到麻烦。

不过,问题有多大,取决于您。 如果您在不同的服务器上有官方项目页面, 那么 github url 可能不是什么大问题。 如果您在邮件列表和目录中使用 github url 宣传您的项目, 那么您可能不应该更改 repo 名称。


更改存储库名称的另一种方法是创建一个新存储库并在旧存储库中留下有关如何访问新存储库的注释(也作为存储库中的提交)。

如果您不想将新的 repo 列为旧 repo 的分支,则需要创建一个新的 github 帐户。 您可以将您的其他帐户添加为两个存储库的协作者。

【讨论】:

【参考方案4】:

我只是简单地重命名我自己的:

    在我的存储库中访问 github.com 打开设置选项卡 您可以看到的第一个设置是“存储库名称” 更改实际名称并将您要为存储库提供的新名称 点击“重命名”按钮

在此步骤之后,GitHub 将确保您的在线存储库与您的本地文件夹名称匹配。 在这一步你的问题就解决了,除非你还想重命名你的本地文件夹。然后手动进行,只需使用 Windows 版 Github 客户端重新将您的存储库重新查找到您的硬盘驱动器中,Github 将再次匹配它。 就这样! 很简单。

【讨论】:

令人惊讶的是,不仅这里的投票率很高的答案,而且 github.com 上的帮助页面都通过设置选项卡省略了在 github.com 上重命名的步骤。 最佳和最简单的答案【参考方案5】:

请注意,自 2013 年 5 月 ("Repository redirects are here!") 以来,您可以在不破坏任何链接的情况下重命名 GitHub 存储库:

我们很高兴地宣布,从今天开始,在这种情况下,我们将自动将所有对以前存储库位置的请求重定向到他们的新家。你没有什么特别的事情要做。只需重命名,剩下的交给我们。

作为一项特殊奖励,我们还将为来自以前存储库位置的所有 Git 克隆、获取和推送请求提供服务

这意味着您甚至不必在本地克隆存储库上 git remote set-url(更改远程 GitHub 存储库的 url)! 尽管Gabriel 指出in the comments official GitHub help page 强烈建议您这样做:

为减少混淆,我们强烈建议更新任何现有的本地克隆以指向新的存储库 URL。您可以通过在命令行上使用 git remote 来做到这一点:

git remote set-url origin new_url

请注意:

GitHub Pages 网站在此时重命名其存储库时不会自动重定向。 重命名 页面存储库 将继续破坏任何现有链接,这些链接指向托管在 github.io 域或自定义域上的内容。

另外,用户仍然拥有命名空间:如果他/她使用重命名的 repo 的旧名称创建 新的 repo,则该重定向(对于上述重命名的 repo ) 将停止工作。

【讨论】:

这真的很有用,但当重命名并没有破坏我的旧推/拉活动时,最初非常令人困惑。现在我可以立即更改名称,并让其他人知道在特定日期之前使用set-url 更新他们的存储库。在那之后,我将粉碎旧名称 repo,方法是创建一个空白的带有漂亮的“I WARNED U”自述文件。 请注意,即使您不必必须使用 git remote set-url 来更新现有的本地克隆以指向新的存储库 URL,您也可以使用 strongly recommended做。【参考方案6】:

简单的解决方案:

1) 打开你的项目地址:https://github.com/someuser/project-name 2) 在顶部的项目名称旁边,单击 EDIT

【讨论】:

没有这个按钮【参考方案7】: 导航到您的存储库路径。 点击右侧窗格中的设置按钮。 将旧存储库名称替换为新名称。 点击重命名按钮

【讨论】:

【参考方案8】:

此解决方案适用于使用 GitHub 桌面的用户。

    从 GitHub.com 上的设置重命名您的存储库

    现在从您的桌面点击同步。

完成。

【讨论】:

奇怪的是在应用程序本身中找不到这样一个基本功能【参考方案9】:

    从浏览器打开此网址 (https://github.com/)

    转到页面右端的存储库

    打开要重命名的仓库链接

    点击设置(您会在导航栏中找到)

    您会在顶部找到一个名为(存储库名称)的框,您可以在其中输入新名称

    按重命名

【讨论】:

【参考方案10】:

我找到的最简单的方法

    转到您的 repo 链接,例如:- https://github.com/someuser/someRepo.git

    点击设置标签。

您首先看到的是您的存储库名称,您可以对其进行编辑。

注意:- 如果您在本地克隆了 repo,请手动更改其文件夹名称。

【讨论】:

同样的 pollux1er 的回答【参考方案11】:

我看到很多对我完全不准确/不完整的回复的积极反馈。

有两点要记住:

远程存储库 存储库的本地副本

如果你还没有在你的机器上克隆你的 repo,你只需要重命名 Github 存储库,然后继续克隆 repo,这样你就可以拥有一个本地副本。要重命名 Github 存储库,您只需:

    转到存储库站点(即https://github.com/userX/repositoryZ)。 在导航栏中,您将看到一个名为“设置”的选项卡。点击它。 只需用所需的名称编辑当前存储库名称,然后按“重命名”。 照常克隆存储库(即 git clone https://github.com/userX/repositoryU)。

如果您已经有项目的本地副本,除了按照上述步骤操作外,您还需要确保正确重命名本地存储库(根文件夹)并且它指向正确的远程网址 :) 链接。为此,请执行以下操作:

    您可能希望为您的存储库使用新的给定名称。为此,请使用操作系统 GUI(Finder、Windows 资源管理器等)或控制台重命名本地文件夹:

mv -R current-repo-name new-repo-name

    更改远程 URL。从文件夹的根目录中,使用以下内容:

$ git remote set-url origin https://github.com/userX/repositoryU

$ git remote set-url origin git@github.com:userX/repositoryU.git

不过,第二步不是强制性的。 Github 不久前宣布,他们会将所有来自以前存储库 url 的请求重定向到指定的请求。这意味着您不需要使用 $ git remote set-url ...,但他们仍然鼓励您这样做以避免混淆。

希望它有所帮助。如果您有任何问题或帖子不够清楚,请告诉我。

【讨论】:

【参考方案12】:

我已尝试在网页上重命名存储库:

    点击右边页面的顶部是你的头像。 您可以查看setting的图标,点击它,然后您可以在Personal setting下找到Repositories。 单击Repositories 并输入您的存储库目录,选择您要重命名的存储库。 然后您将进入选择的存储库,您会发现setting 的图标已添加到顶行,只需单击它并输入新名称,然后单击Rename

完成,很容易。

【讨论】:

以上是关于如何重命名 GitHub 上的存储库?的主要内容,如果未能解决你的问题,请参考以下文章

如何重命名 GitHub 网站上的目录/文件夹?

Docker如何更改存储库名称或重命名图像?

如何在 GitHub 网站上重命名分支?

提交后修复Mercurial存储库中的重命名

从命令行重命名 Github repo

在 Git 中重命名文件后没有预期的日志 [重复]