- Git 入门
- Git - 首页
- Git - 版本控制
- Git - 基本概念
- Git - 命令行
- Git - 安装
- Git - 首次设置
- Git - 基本命令
- Git - 获取帮助
- Git - 工具
- Git - 速查表
- Git - 术语
- Git 分支
- Git - 简述分支
- Git - 创建新分支
- Git - 切换分支
- Git - 分支和合并
- Git - 合并冲突
- Git - 管理分支
- Git - 分支工作流程
- Git - 远程分支
- Git - 跟踪分支
- Git - 变基
- Git - 变基与合并
- Git - 合并提交
- Git 操作
- Git - 克隆操作
- Git - 打标签操作
- Git - 别名操作
- Git - 提交操作
- Git - 暂存操作
- Git - 移动操作
- Git - 重命名操作
- Git - 推送操作
- Git - 拉取操作
- Git - Fork 操作
- Git - Patch 操作
- Git - Diff 操作
- Git - 状态操作
- Git - 日志操作
- Git - HEAD 操作
- Git - origin master
- Git 撤销
- Git - 撤销更改
- Git - Checkout
- Git - 恢复
- Git - 重置
- Git - 恢复操作
- Git - Rm
- Git - 切换操作
- Git - Cherry-pick
- Git - 修正
- Git 在服务器上
- Git - 本地协议
- Git - 智能 HTTP 协议
- Git - 哑 HTTP 协议
- Git - SSH 协议
- Git - Git 协议
- Git - 在服务器上获取 Git
- Git - 设置服务器
- Git - 守护进程
- Git - GitWeb
- Git - GitLab
- Git - 第三方托管选项
- 分布式 Git
- Git - 分布式工作流程
- Git - 为项目做贡献
- Git - 维护项目
- 自定义 Git
- Git - 配置
- Git - 钩子
- Git - 属性
- Git - Init
- Git - Commit
Git Pull
一个关键的远程 Git 操作,git pull 更新所有相关的远程跟踪分支以及我们当前的本地工作分支。
命令 git pull 确保我们的本地副本始终与远程进行的更改保持最新,并包含来自远程存储库的最新添加。
通过保持本地和远程版本的一致性,我们可以避免项目版本历史记录中出现潜在的差异。
它做了什么?
获取 - 从远程存储库获取最新更改。
合并 - 将最新更改合并到当前分支。
概述
通过 Git pull 命令将远程存储库的更新合并到当前分支。
默认情况下,如果当前分支落后于远程分支,它会将当前分支快进以匹配远程分支。
如果当前分支和远程分支出现分歧,则需要指定诸如 --rebase 或 --no-rebase(或配置 pull.rebase)之类的选项进行协调。
要获取远程更改,git pull 首先使用给定的参数执行 git fetch。
默认情况下,git pull 然后执行 git rebase 或 git merge 来解决分支之间的差异,具体取决于配置或标志。
语法
git pull [<remote>] [<branch>]
<remote> 是远程存储库的名称。
<branch> 是本地分支的名称。
用法
命令 git pull 可以以下列方式使用
基本拉取
可以获取来自跟踪的远程分支的更改并将其合并到当前分支。
git pull
从特定远程和分支拉取
可以获取来自 origin 远程的 main 分支的更改并将其合并到当前分支。
git pull origin main
冲突与快进合并
如果您的分支领先于远程分支,则可以执行快进合并,但它可能存在需要手动解决的冲突。
变基而不是合并
您可以使用带有变基的拉取在远程更改之上应用您的更改。这使历史记录更清晰。
git pull --rebase
选项
git pull 命令具有以下选项
--ff-only
仅快进更改。如果需要合并,则会中止拉取以避免创建合并提交。
git pull --ff-only
--no-ff
即使快进是可能的,它也会强制进行合并提交。
git pull --force
--rebase
命令 git pull --rebase 将本地更改应用于获取的更改之上。有助于以更线性且更清晰的方式维护提交历史记录。
git pull --rebase
--no-rebase
它确保合并,防止变基。
git pull --no-rebase
--quiet 或 -q
git reset 命令通常用于管理远程跟踪分支,该分支可以用我们当前分支的修改覆盖。
git pull --quiet
--verbose
命令 git pull --verbose 详细列出已获取和合并的更改信息。
git pull --verbose
--autostash
命令 git pull --autostash 在执行 git pull 之前自动暂存本地更改,并在拉取完成后应用这些更改。
git pull --autostash
--no-edit
如果发生合并,则命令 git pull --no-edit 会跳过合并提交的提交消息编辑器。
git pull --no-edit
--all
要从与我们的本地存储库链接的所有远程存储库获取更改,将使用命令 git pull --all。
git pull -- all
要从与我们的本地存储库链接的所有远程存储库获取更改,将使用命令 git pull --all。
在管理多个远程时这很有用,例如,在跨不同存储库进行协作或使用分叉的存储库时,这很有优势。
此命令确保所有远程更改都反映在我们的本地存储库中,这有助于同步和协作。
它使将来自不同来源的更新合并到我们的本地开发环境中变得更加容易。
--strategy=<strategy>
命令 git pull --strategy=<strategy> 指定可以使用哪个合并策略。一些常见的策略
recursive - 它是默认策略,是一个三方过程。
ours - 它保留您版本的內容。
theirs - 它使用远程版本的內容。
git pull --strategy=recursive
多个选项的用法
命令 git pull 也可以在一个命令中使用多个选项。
git pull --rebase --autostash --verbose
上述命令将在一个命令中执行所有三个操作,即,使用变基拉取更改、暂存任何未提交的更改,并提供更改的详细输出。
在执行 git pull 之前,最好确保您的工作目录是干净的。这可以使用 git status 命令进行验证。