我想要在GitHub上重命名一个仓库,但当出现一个大红色警告时,我有些害怕:
- 我们不会为旧位置设置任何重定向
- 您需要更新本地存储库以指向新位置
- 重命名可能需要几分钟才能完成
有没有人有关于如何手动完成第1步和第2步的具体步骤说明?还是说我需要在本地做些什么?
我想要在GitHub上重命名一个仓库,但当出现一个大红色警告时,我有些害怕:
- 我们不会为旧位置设置任何重定向
- 您需要更新本地存储库以指向新位置
- 重命名可能需要几分钟才能完成
有没有人有关于如何手动完成第1步和第2步的具体步骤说明?还是说我需要在本地做些什么?
如果你是唯一参与该项目的人,那么这不是一个大问题,因为你只需要做第2步。
假设你的用户名是someuser
,项目名为someproject
。
那么你的项目URL将会是1
git@github.com:someuser/someproject.git
如果您重命名您的项目,它将会更改URL中的someproject
部分,例如:
git@github.com:someuser/newprojectname.git
(如果您的URL不是这种样子,请参见脚注。)push
或pull
操作时,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
是最常见的远程名称,但它可能被称为其他名称。)
但是如果有很多人在你的项目上工作,他们都需要执行上述步骤,也许你甚至不知道如何联系所有人告诉他们。这就是 #1 的意义所在。
进一步阅读:
脚注:
1 URL 的确切格式取决于您使用的协议,例如:
git remote -v
的输出格式是 git@github.com:someuser
,你在这里放的正斜杠对我没起作用。不过其他的都好使。 - yurisich请注意,自2013年5月("Repository redirects are here!")起,您可以重命名GitHub存储库而不会破坏任何链接:
我们很高兴地宣布,从今天开始,在这些情况下,我们将自动重定向先前存储库位置的所有请求到它们的新地址。您无需特别操作,只需进行重命名,剩下的工作我们来完成。
作为一个特别的优惠,我们还将服务于来自之前存储库位置的所有Git clone、fetch和push请求。
这意味着您甚至不需要在本地克隆的存储库上执行 git remote set-url
(更改远程 GitHub 存储库的 URL)!
尽管Gabriel在评论中指出,官方 GitHub 帮助页面强烈建议您这样做:
为了减少混淆,我们强烈建议更新任何现有的本地克隆以指向新存储库 URL。您可以使用命令行上的 git remote 来完成此操作:
git remote set-url origin new_url
不过需要注意:
GitHub Pages 网站目前在其仓库更名后,并不会自动重定向到新的名称。
重命名一个 Pages 仓库 将继续破坏任何现有链接到托管在github.io
域或自定义域上的内容。
此外,用户仍然拥有该命名空间:如果他/她使用已更改的仓库名称创建一个 新的 仓库,则该更名后的仓库的重定向将停止工作。
set-url
更新他们的存储库。在那个日期之后,我将通过创建一个带有漂亮的 "我已警告你" 自述文件的空白存储库来“毁掉”旧名称存储库。 - cod3monk3y按以下步骤重命名一个 GitHub 仓库:
完成后,你的在线仓库将与你本地文件夹名称相匹配。
你可能还想要重命名你的本地文件夹。手动更改并使用GitHub Windows客户端查找你的仓库,重命名本地副本后,它将再次匹配 GitHub。
我看到很多人对那些我认为不够准确/完整的答案给予了积极的反馈。
有两个要点需要注意:
如果你还没有在你的机器上克隆你的仓库,你只需要重命名Github仓库并继续克隆这个仓库,这样你就能得到一个本地副本。为了重命名Github仓库,你只需要:
如果你已经有了项目的本地副本,除了按照上述步骤操作,你还需要确保你的本地仓库(根目录)被正确重命名,并且指向了正确的远程url链接。为了实现这一点,你需要执行以下操作:
mv -R current-repo-name new-repo-name
$ git remote set-url origin https://github.com/userX/repositoryU
或者
$ git remote set-url origin git@github.com:userX/repositoryU.git
第二步不是必需的。Github之前宣布会将所有以前的存储库url请求重定向到指定的存储库url。这意味着您不需要使用$ git remote set-url ...
,但他们仍然鼓励您这样做以避免混淆。
希望这可以帮助到您。如果您有任何问题或者本篇文章不够清晰,请告诉我。
此答案已过时!GitHub现在将转发到新位置。有关详情,请参见此答案。
出现此警告的原因是,#1无法手动创建。
如果您是唯一的工作人员且链接到存储库,则更改本地repo和web页面中的远程即可。
但是,首先在github上拥有公共存储库的原因是,您可以让其他人克隆您的存储库并链接到您的github项目页面。
旧的url github.com/<username>/<repository>
由github拥有。
当他们不设置任何重定向到新url时,没有人可以。
因此,除了您要说的人之外,每个人都会遇到问题。
这算是一个多大的问题,取决于你自己。 如果您有一个在不同服务器上的官方项目页面, 那么github url可能不是太大的问题。 如果您在邮件列表和目录中使用github url进行广告宣传, 那么您可能不应更改repo名称。
更改repo名称的替代方法是创建一个新的存储库,并在旧存储库中留下说明(也作为存储库中的提交),说明如何到达新存储库。
如果你想让你的新repo列为旧repo的分支,你需要创建一个新的github账户。 您可以将另一个帐户添加为两个存储库的协作者。
在GitHub.com上的设置中将您的存储库重命名。
现在从您的桌面点击同步按钮。
完成。
在浏览器中打开此链接 (https://github.com/)
在页面右侧找到“Repositories”
打开您想要重命名的存储库链接
点击导航栏中的“Settings”
在顶部,您会找到一个名为“Repository name”的框,您可以在其中输入新名称
点击“Rename”
.git/config
文件中进行修改。 - aliteralmind