git remote 管理「远端别名」:把一长串仓库地址记成 origin、upstream,并维护各自的 fetch / push 地址与跟踪范围。它不传数据,只改配置。

本文列出 git remote 的全部常用子命令与参数,覆盖加远端、改地址、HTTPS 换 SSH、清理失效引用等场景。

ℹ️
关于本系列
本文是《Git 使用教程》按命令拆分的第 23 / 28 篇,全部收录在 Git 栏目。参数表列的是日常高频项,并非穷举;想看某个命令的完整参数,用 git remote -h 看精简列表、git help remote 看完整手册。示例以 Git 2.56.0 为准。

一、命令语法

先看语法骨架,再对照下一节的参数表。<占位> 表示必填值,实际输入时不要带尖括号;[...] 表示可选项,-- 用来分隔选项与路径。

bash语法
git remote [-v | --verbose]
git remote add / remove / rename / set-url / show / prune <name> ...

二、参数逐项详解

下表按用途列出 git remote 的常用参数,每项都注明了「它到底改变了什么」。

子命令 / 参数作用
git remote -v列出所有远端及其 fetch/push 地址,最常用
add <名> <url>新增远端,如把原仓库加为 upstream
-f / --fetch配合 add,加完立刻 fetch 一次
-t <分支>配合 add,只跟踪指定分支
remove <名> / rm删除远端别名及其跟踪引用
rename <旧> <新>改远端别名
set-url <名> <url>改地址,HTTPS 换 SSH 时用
set-url --push <名> <url>单独设置 push 地址(可与 fetch 地址不同)
set-url --add / --delete给同一远端追加 / 删除一个地址
get-url <名> / --push / --all读取地址,脚本里用
show <名> / -n显示该远端的分支、跟踪关系与过时引用;-n 不联网查询
prune <名> / --dry-run清理本地已失效的远程跟踪分支,不删本地分支
set-branches <名> <模式>设置跟踪范围;浅克隆恢复全部分支用 '*'
set-head <名> <分支>设置远端默认分支,影响 origin/HEAD

三、常用示例

看与加

bash看与加
git remote -v
git remote add upstream https://example.com/original/repo.git
git remote -v

HTTPS 换 SSH

bashHTTPS 换 SSH
git remote set-url origin git@example.com:team/app.git
git remote get-url origin
git fetch --prune

清理与恢复跟踪范围

bash清理与恢复跟踪范围
git remote show origin
git remote prune origin --dry-run
git remote prune origin
git remote set-branches origin "*"    # 浅克隆/单分支克隆恢复全部

四、注意事项

origin 只是个默认名字: 它可以改成任何名字;git clone -o github ... 克隆时就能指定。团队里保持统一(origin 指向自己的仓库、upstream 指向上游)能少写很多解释。
ℹ️
prune 的安全边界
git remote prune 只删 refs/remotes/<远端>/... 下的远程跟踪引用,你本地的分支一个都不会动。想让它自动发生,配 git config --global fetch.prune true。

五、小结

git remote 九十% 的使用集中在 -v、add、set-url 三条。真正容易被忽略的是 prune——它让 git branch -r 不再堆满别人早已删掉的分支,建议直接配成自动执行。

本系列共 28 篇,一个命令一篇,完整目录见 Git 栏目。下一篇:git fetch 命令参数详解。