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

rab*_*bid 301 git github repository

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

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

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

Mik*_*kel 321

如果你是唯一一个从事这个项目的人,这不是一个大问题,因为你只需要做#2.

假设您的用户名是,someuser并且您的项目已被调用someproject.

那么你的项目的URL将是1

git@github.com:someuser/someproject.git
Run Code Online (Sandbox Code Playgroud)

如果重命名项目,它将更改someprojectURL 的一部分,例如

git@github.com:someuser/newprojectname.git
Run Code Online (Sandbox Code Playgroud)

(如果您的网址不是这样,请参阅脚注).

push执行a pull或时使用此URL的工作副本cd.

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

您可以分两步完成:

首先,cd到你的本地git目录,找出哪个远程名称引用该URL

$ git remote -v
origin  git@github.com:someuser/someproject.git
Run Code Online (Sandbox Code Playgroud)

然后,设置新URL

$ git remote set-url origin git@github.com:someuser/newprojectname.git
Run Code Online (Sandbox Code Playgroud)

或者在旧版本的git中,您可能需要

$ git remote rm origin
$ git remote add origin git@github.com:someuser/newprojectname.git
Run Code Online (Sandbox Code Playgroud)

(origin是最常见的远程名称,但可能会被称为其他名称.)

但是如果有很多人正在为你的项目工作,他们都需要做上述步骤,也许你甚至不知道如何联系他们告诉他们.这就是#1的意思.

进一步阅读:

脚注:

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

  • 这会影响回购的统计数据,如星数吗? (3认同)
  • 对我来说 `git remote set-url origin https://github.com/username/newprojectname.git` 有效 (2认同)

Von*_*onC 128

请注意,自2013年5月(" 存储库重定向在这里! "),您可以重命名您的GitHub 仓库而不会破坏任何链接:

我们很高兴地宣布,从今天开始,在这些情况下,我们会自动将以前存储库位置的所有请求重定向到新家.你不需要做什么特别的事.只需重新命名,我们将照顾其余部分.

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

这意味着您甚至不必git remote set-url(在您的本地克隆仓库中更改远程GitHub仓库的URL)!
虽然加布里埃尔指出在评论是,官方的GitHub帮助页面强烈建议你这样做:

为了减少混淆,我们强烈建议您更新任何现有的本地克隆以指向新的存储库URL.您可以在命令行上使用git remote来执行此操作:

git remote set-url origin new_url
Run Code Online (Sandbox Code Playgroud)

请注意:

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

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

  • 这非常有用,但是当重命名没有破坏我的旧推/拉活动时,最初非常混乱.现在我可以立即更改名称,让其他人知道在特定日期之前使用`set-url`更新他们的存储库.在那个日期之后,我将通过创建一个带有一个漂亮的"I WARNED U"自述文件的空白名称_smash_旧名称repo. (4认同)

pol*_*1er 57

我简单地重命名自己:

  1. 在我的存储库上访问github.com
  2. 打开设置选项卡
  3. 您可以看到的第一个设置是"存储库名称"
  4. 更改实际的名称并将要添加的新名称添加到存储库
  5. 单击重命名

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

  • 令人惊奇的是,不仅这里得到高度评价的答案,而且 github.com 上的帮助页面也省略了通过设置选项卡在 github.com 上重命名的步骤。 (3认同)

Raj*_*put 14

我找到的最简单的方法

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

  2. 单击设置选项卡.

在此输入图像描述

您可以看到的第一件事是您的回购品名称,您可以对其进行编辑.

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


Jon*_*yJD 9

这个答案现在已经过时了!GitHub现在将转发到新的位置.有关详情,请参阅此答案.


这个警告的原因是因为#1 不能手动制作.

如果您是唯一一个处理和链接到存储库的人,那么您可以更改本地存储库和网页中的遥控器.

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


旧网址github.com/<username>/<repository>由github拥有.当他们没有设置任何重定向到新网址时,没有人可以.因此,除了你所说的人之外,每个人都会受到打击.

然而,问题有多大,取决于你.如果你在不同的服务器上有一个官方项目页面,那么github url可能不是什么大问题.如果您在邮件列表和目录中使用github url通告了您的项目,那么您可能不应该更改repo名称.


更改repo名称的另一种方法是创建一个新的存储库,并在旧的存储库中保留注释(也作为repo中的提交),以了解如何访问新的存储库.

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


ces*_*rds 9

我看到很多积极的反馈回复我根本找不到准确/完整.

有两件事需要考虑:

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

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

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

如果您已有项目的本地副本,除了执行上述步骤之外,还需要确保正确重命名本地存储库(根文件夹)并指向正确的远程URL :)链接.为了实现这一目标,请执行以下操作:

  1. 您可能希望为您的仓库使用新的给定名称.为此,请使用SO GUI(Finder,Windows资源管理器等)或控制台重命名本地文件夹:

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

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

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

要么

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

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

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


Nei*_*est 6

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


res*_*hma 6

  • 导航到您的存储库路径.
  • 点击右侧panne中的设置按钮.
  • 将旧存储库名称替换为新名称.
  • 单击" 重命名"按钮