Background
GitHub 上的仓库名从 old-repo 改为了 new-repo,本地 clone 的 remote URL 需要同步更新,否则 push/pull 会 404。
问题现象
bash
$ git remote -v
origin git@github.com:username/old-repo.git (fetch)
origin git@github.com:username/old-repo.git (push)
仓库已重命名为 new-repo,旧 URL 不再有效。
解决方法
bash
git remote set-url origin git@github.com:username/new-repo.git
命令解析
| 部分 | 含义 |
|---|---|
git remote set-url |
修改已有 remote 的 URL,不影响 tracking 关系 |
origin |
要修改的 remote 名称 |
git@github.com:username/new-repo.git |
新的仓库地址(SSH 协议) |
SSH vs HTTPS
| 协议 | URL 格式 | 特点 |
|---|---|---|
| SSH | git@github.com:username/new-repo.git |
免密推送,需配置 SSH key |
| HTTPS | https://github.com/username/new-repo.git |
每次需输入凭证(或配置 credential helper) |
如果本地已配置 SSH key,推荐使用 SSH 格式保持一致。
验证
bash
$ git remote -v
origin git@github.com:username/new-repo.git (fetch)
origin git@github.com:username/new-repo.git (push)
Summary
- GitHub 仓库 rename 后,本地 remote URL 需要手动更新
git remote set-url是最简洁的方式,不会破坏任何 branch tracking 配置- 保持协议风格一致(SSH or HTTPS),避免混用