git fetch 获取远程更新
git fetch 从远程仓库获取更新信息,但不自动合并到本地分支。
基本用法
Bash
# 获取所有远程更新
git fetch
# 获取指定远程的更新
git fetch <remote>
# 获取指定分支的更新
git fetch <remote> <branch>
fetch vs pull
| 命令 | 操作 | 合并 |
|---|---|---|
| git fetch | 只获取更新 | 不合并 |
| git pull | 获取+合并 | 自动合并 |
fetch 更安全:先查看变更再决定是否合并。
fetch 示例
Bash
# 获取 origin 的所有更新
git fetch origin
# 输出
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 8 (delta 2), reused 6 (delta 1)
Unpacking objects: 100% (8/8), done.
From https://github.com/user/repo
a1b2c3..b2c3d4 main -> origin/main
* [new branch] feature -> origin/feature
fetch 后的操作
Bash
# 查看远程分支变更
git log HEAD..origin/main
# 查看差异
git diff HEAD..origin/main
# 合并远程更新
git merge origin/main
# 或使用 rebase
git rebase origin/main
fetch 工作流程
Bash
1. git fetch origin # 获取更新
2. git log HEAD..origin/main # 查看变更
3. git merge origin/main # 合并更新
获取所有远程分支
Bash
# 获取所有远程仓库的更新
git fetch --all
# 获取时清理已删除的远程分支引用
git fetch -p
git fetch --prune
查看远程分支
text
# 查看所有远程分支
git branch -r
# 查看所有分支(含远程)
git branch -a
# 查看远程分支提交
git log origin/feature
fetch 典型场景
| 场景 | 操作 |
|---|---|
| 检查远程更新 | fetch → log → 决定是否合并 |
| 安全同步 | fetch → 查看变更 → merge |
| 查看远程新分支 | fetch → branch -r |
| 清理远程引用 | fetch -p |
推荐用 fetch + merge 替代 pull,先查看再合并更安全。
要点总结
- fetch 只获取更新,不合并
- 比 pull 更安全,可先查看变更
git fetch --all获取所有远程更新git fetch -p清理已删除的远程分支引用- fetch 后用 merge 或 rebase 合入
📝 发现内容有误?点击此处直接编辑