繁体   English   中英

从命令行重命名 Github repo

[英]Rename Github repo from command line

我用谷歌搜索并在 stackoverflow 上搜索了以下问题,但找不到任何令人满意的答案。

所以说,我有一个远程存储库: https://github.com/<username>/foo : https://github.com/<username>/foo username>/ https://github.com/<username>/foo ,我希望将其重命名为https://github.com/<username>/bar在远程站点以及来自命令行的本地配置条目,现在我在“~/my_github_repos/foo”本地克隆了 repo。

所以基本上,我希望这个 repo 的所有东西都从foo转换为bar ( urls /配置 / 本地文件夹)

为此,我将文件夹~/my_github_repos/foo/重命名为~/my_github_repos/bar/并尝试这样做,

git remote set-url origin https://github.com/<username>/bar.git

但这只是在本地而不是远程完成的。 因此,当我对现在重命名的文件夹bar中的文件进行一些更改并执行git push origin master ,它给了我错误:

remote: Repository not found.
fatal: repository 'https://github.com/<username>/bar.git/' not found

那么,为了 repo 的重命名,我需要做什么才能在本地进行更改并远程反映它?

我知道 Github.com 为重命名存储库提供了一个非常好的用户界面,但是我只想知道是否有办法通过命令行在几个步骤中做到这一点。 如果没有,我同意从 github.com 网站重命名它很简单。

这个问题的原因是,我喜欢主要从命令行做事,而不是到处去执行像重命名存储库这样简单的任务。

PS我搜索了stackoverflow并找到了这个: Rename Github Repository ,这可能看起来类似于这个问题,但它是不同的。

本地存储库和远程存储库在这方面是分开的。 没有 Git 命令可以让您更改远程存储库的路径/名称。

您在问题中提到您已经更改了本地目录的名称并使用git remote set-url更新了存储库 URL。 由于您无法使用 Git重命名远程存储库,因此您需要以您拥有的实际远程存储库的类型/软件/平台支持的方式执行此操作。

这是用GitHub标记的,所以您的问题归结为:有没有办法在不使用 Web 界面的情况下更改 GitHub 存储库的名称? 是的,这可以通过 GitHub API 通过向/repos/{owner}/{repo}发送PATCH请求并指定不同的name参数( docs ) 来实现。

我建议使用 GitHub CLI 的api -command允许以安全的方式向 GitHub API 发出经过身份验证的请求:

gh api -X PATCH --raw-field name=new-name repos/account-name/current-name

GitHub CLI 有一个功能请求,允许使用专用命令而不是使用api命令重命名存储库。

另一种选择是直接使用curl 但是,在命令行中传递凭据具有安全隐患,我不建议这样做。 为了这个例子,这里是请求的样子:

curl -X PATCH \
  -d '{"name": "new-repo-name"}' \
  -H "Authorization: token ghp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
  "https://api.github.com/repos/account-name/current-repo-name"

我喜欢主要从命令行做事,而不是到处去执行像重命名存储库这样简单的任务。

无需再使用 API 命令,使用新的 gh 2.3.0
它使用相同的 API 调用重命名远程存储库。 但是:它还会重命名远程“ origin ” URL 以匹配新重命名的存储库 URL。

请参阅PR 4450提交 67d1a90 ,使用pkg/cmd/repo/rename/rename.go#updateRemote() git.UpdateRemoteURL()

但是您可以使用gh 扩展名走得更远,如Nate Smith在此处说明的那样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM