git - 从命令行重命名 Github repo
问题描述
我用谷歌搜索并在stackoverflow上搜索了以下问题,但是找不到任何令人满意的答案。
所以说,我有一个远程存储库:https://github.com/<username>/foo
我希望将其重命名为https://github.com/<username>/bar
远程站点以及命令行的本地配置条目,现在我将存储库克隆到本地'~/my_github_repos/foo'。
所以基本上,我希望这个 repo 的所有东西都被转换foo
为bar
(urls/configurations/local folder)
为此,我将文件夹重命名~/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 提供了一个非常好的 UI 来重命名存储库,但是我只想知道是否有一种方法可以通过命令行的几个步骤来实现。如果不是,我同意从 github.com 网站重命名它很简单。
这个问题的原因是,我喜欢主要从命令行做事,而不是到处做像重命名仓库这样简单的任务。
PS我搜索了stackoverflow并发现了这个:Rename Github Repository,它可能看起来与这个问题相似,但它是不同的。
解决方案
本地存储库和远程存储库在这方面是分开的。没有允许您更改远程存储库的路径/名称的 Git 命令。
您在问题中提到您已经更改了本地目录的名称并使用git remote set-url
. 因为您无法使用 Git重命名远程存储库,所以您需要以您拥有的实际远程存储库的类型/软件/平台支持的方式执行此操作。
这是用GitHub标记的,所以你的问题归结为:有没有办法在不使用 Web 界面的情况下更改 GitHub 存储库的名称? 是的,这可以通过 GitHub API 通过发送PATCH
请求/repos/{owner}/{repo}
并指定不同的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
-command。
另一种选择是curl
直接使用。但是,在命令行中传递凭据具有安全隐患,我不建议这样做。出于示例的目的,请求如下所示:
curl -X PATCH \
-d '{"name": "new-repo-name"}' \
-H "Authorization: token ghp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
"https://api.github.com/repos/account-name/current-repo-name"
推荐阅读
- git - git - 尽管没有使用“--single-branch”克隆存储库,但仍从特定分支获取
- vue.js - 初始化松树状态
- list - Ansible 修剪扩展名
- css - 如何将绝对定位的部分与高度对齐:自动
- python - 使用 Matplotlib 绘制三个不同尺度的 y 轴时间序列数据
- docker - 多路复用路由器在 Dockerized golang 项目中不起作用
- javascript - 如何使用带有 JSON 获取 API 响应 Javascript 的 if / else 语句
- swift - 当我将 UIWindow 添加为 rootController 时,它会拉伸我的 UIAlertController
- elasticsearch - 将角色与 Open Distro 和 Keycloak 集成
- python - 按文件查找 PyPi 包?