git fetch
从远程仓库下载最新的提交和分支信息,但不自动合并到本地分支
语法
git fetch [<remote>] [<refspec>...]
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
--all |
获取所有远程仓库的更新 | |
常用 |
--prune |
删除远程已不存在的本地追踪分支 | |
常用 |
--tags |
获取所有标签 | |
常用 |
--depth <n> |
限制获取的历史深度(浅克隆) | |
常用 |
--dry-run |
模拟执行,显示会做什么但不实际操作 | |
常用 |
示例
获取 origin 远程的所有更新
git fetch origin
获取所有远程仓库的更新
git fetch --all
获取更新并清理已删除的远程分支
git fetch --prune
只获取远程 main 分支的更新
git fetch origin main
同步 fork 的上游仓库
git fetch upstream && git merge upstream/main
技巧
- fetch 是安全操作,不会修改你的工作区和本地分支
- git pull = git fetch + git merge,fetch 让你先查看再决定是否合并
- 定期 fetch --prune 保持本地分支引用整洁
- fetch 后用 git log origin/main..main 查看本地领先的提交