文章目录
- [1. 简介](#1. 简介)
- [2. 格式](#2. 格式)
- [3. 选项](#3. 选项)
- [4. 示例](#4. 示例)
-
- [4.1 查看远程仓库](#4.1 查看远程仓库)
- [4.2 添加远程仓库](#4.2 添加远程仓库)
- [4.3 重命名远程仓库](#4.3 重命名远程仓库)
- [4.4 移除本地对远程仓库的关联](#4.4 移除本地对远程仓库的关联)
- [4.5 修改远程仓库 URL](#4.5 修改远程仓库 URL)
- [4.6 查看远程仓库详细信息](#4.6 查看远程仓库详细信息)
- [4.7 清理本地远程跟踪分支](#4.7 清理本地远程跟踪分支)
- [5. 注意](#5. 注意)
-
- [5.1 `origin` 的由来](#5.1
origin的由来) - [5.2 常见远程仓库命名约定](#5.2 常见远程仓库命名约定)
- [5.3 远程跟踪分支](#5.3 远程跟踪分支)
- [5.4 查看远程分支](#5.4 查看远程分支)
- [5.5 常用别名设置](#5.5 常用别名设置)
- [5.1 `origin` 的由来](#5.1
- [6. 小结](#6. 小结)
- 参考文献
1. 简介
git remote 用于管理一组被跟踪的远程代码仓库。
通过该命令,您可以查看、添加、重命名或删除与本地仓库关联的远程仓库。
简单来说,git remote 帮助您管理本地仓库与远程仓库之间的连接关系,是 Git 协作开发中的重要工具。
2. 格式
bash
git remote [-v | --verbose]
git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--mirror=<fetch|push>] <name> <url>
git remote rename <old> <new>
git remote remove <name>
git remote set-url <name> <newurl> [<oldurl>]
git remote show [-n] <name>...
git remote prune [-n | --dry-run] <name>
3. 选项
bash
-v, --verbose
显示远程仓库的 URL(拉取和推送地址)
add
添加一个新的远程仓库
rename
重命名一个远程仓库
remove
移除一个远程仓库
set-url
修改远程仓库的 URL
show
显示远程仓库的详细信息(包括分支跟踪关系)
prune
删除远程仓库中已不存在的远程跟踪分支
--mirror
设置镜像仓库(用于裸仓库同步)
4. 示例
4.1 查看远程仓库
bash
# 列出所有远程仓库名称
git remote
# 列出所有远程仓库名称和 URL(推荐)
git remote -v | --verbose
# 输出示例:
# origin https://github.com/user/repo.git (fetch)
# origin https://github.com/user/repo.git (push)
4.2 添加远程仓库
bash
# 添加名为 origin 的远程仓库
git remote add origin https://github.com/user/repo.git
# 添加名为 upstream 的远程仓库(常用于跟踪原项目)
git remote add upstream https://github.com/another/repo.git
4.3 重命名远程仓库
bash
# 将 origin 重命名为 upstream
git remote rename origin upstream
4.4 移除本地对远程仓库的关联
bash
# 删除本地对远程仓库 upstream 的关联
git remote remove upstream
只会删除本地对远程仓库的引用(即删除 .git/config 中的远程仓库配置),不会删除远程服务器上的仓库,也不会影响其他人对远程仓库的访问。
4.5 修改远程仓库 URL
bash
# 修改 origin 的 URL
git remote set-url origin https://github.com/newuser/newrepo.git
# 用于单独设置远程仓库的推送地址(push URL),使其与拉取地址(fetch URL)不同
git remote set-url --push origin https://github.com/newuser/newrepo.git
4.6 查看远程仓库详细信息
bash
# 显示 origin 的详细信息(分支跟踪关系)
git remote show origin
4.7 清理本地远程跟踪分支
bash
# 删除远程已不存在的本地跟踪分支
git remote prune origin
当你执行 git fetch 或 git push 时,Git 会在本地创建远程跟踪分支(如 origin/feature)。当远程分支被删除后,本地的远程跟踪分支并不会自动删除,git remote prune 就是用来清理这些"僵尸"引用的。
5. 注意
5.1 origin 的由来
origin 是 Git 中一个默认的远程仓库名称,代表你克隆项目时源仓库的地址。它就像为远程仓库 URL 设定的一个别名或书签,用于简化 Git 命令。
| 场景 | 说明 |
|---|---|
git clone |
自动创建名为 origin 的远程仓库 |
为什么叫 origin |
表示"源头",即克隆的来源仓库 |
| 能否改名 | 可以,但约定俗成不改 |
5.2 常见远程仓库命名约定
| 名称 | 用途 |
|---|---|
origin |
自己的远程仓库(克隆来源) |
upstream |
上游仓库(原项目,用于同步) |
backup |
备份仓库 |
github / gitlab |
区分不同平台的仓库 |
5.3 远程跟踪分支
bash
# 远程跟踪分支格式
<远程仓库名>/<分支名>
# 示例
origin/main
upstream/develop
5.4 查看远程分支
bash
# 查看所有远程分支
git branch -r
# 查看所有分支(包括本地和远程)
git branch -a
5.5 常用别名设置
bash
git config --global alias.rem "remote -v"
git config --global alias.radd "remote add"
git config --global alias.rrm "remote remove"
# 使用别名
git rem
git radd upstream https://github.com/example/repo.git
6. 小结
| 需求 | 命令 | 说明 |
|---|---|---|
| 查看远程仓库 | git remote -v |
最常用,显示名称和 URL |
| 添加远程仓库 | git remote add <name> <url> |
如 git remote add origin ... |
| 重命名远程仓库 | git remote rename <old> <new> |
如 git remote rename origin upstream |
| 移除远程仓库 | git remote remove <name> |
如 git remote remove upstream |
| 修改远程 URL | git remote set-url <name> <newurl> |
如仓库迁移后更新 URL |
| 查看远程详情 | git remote show <name> |
显示分支跟踪关系 |
| 清理远程跟踪分支 | git remote prune <name> |
删除远程已不存在的本地跟踪分支 |
一句话总结 :git remote 管理本地仓库与远程仓库的连接。git remote -v 是最常用的命令,用于查看当前关联的远程仓库。首次克隆后自动有一个 origin,添加其他远程仓库用 git remote add。**