Menu
CoddyTech

Git Pull

最后更新

git pull 用远程仓库的最新提交更新你的当前分支。它在底层先运行 git fetch 下载改动,再用 git merge 把改动整合进来,所以 git pull = git fetch + git merge。加上 --rebase 会把你的本地提交重新应用到最新提交之上,而不是创建合并提交。

在终端在线编辑器中试试这些命令:浏览器里就是真正的 shell,无需安装。

git pull 下载远程的新提交并合并到当前分支,相当于一步完成 fetch 加 merge。

语法

命令作用
git pull获取并合并当前分支对应的远程分支
git pull origin main从远程仓库拉取指定分支
git pull --rebase先获取,再把你的提交变基到最新提交之上
git pull --ff-only只有能快进时才拉取(不合并)
git pull --no-rebase即使默认是变基,也强制使用合并

常见用法

目标命令
让当前分支获取最新改动git pull
保持历史线性git pull --rebase
中止出现冲突的 pullgit merge --abort
丢弃本地提交,与远程保持一致git fetch 后运行 git reset --hard origin/main

git pull 常见问题

git pull 到底做了什么?
它从远程仓库下载当前分支的最新提交,并整合到你的本地分支。它相当于两条命令的简写:先 git fetch(下载),再 git merge(整合)。如果做了相应配置,合并这一步会改为变基。
git pull 和 git fetch 有什么区别?
git fetch 只下载远程改动并更新远程跟踪分支,不会动你正在工作的分支。git pull 在 fetch 之后还会把改动合并到当前分支。想先检查别人推送了什么就用 fetch,想一步拉取并整合就用 pull。什么时候该用哪个,请看完整的 git fetch 与 pull 对比。
git pull --rebase 是什么,什么时候用?
git pull --rebase 获取远程提交后,把你的本地提交重新应用到它们之上,而不是创建合并提交。这样历史能保持线性,很多团队更喜欢这种方式。如果你有尚未推送的本地提交,又不想每次 pull 都多出一个合并提交,就用它。
git pull 之后出现冲突怎么办?
本地和远程的改动有重叠时,pull 可能会产生合并冲突。打开有冲突的文件,解决标记出的部分,然后对它们执行 git add,再运行 git commit(合并方式)或 git rebase --continue(变基方式)。如果想放弃这次拉取,运行 git merge --abort 或 git rebase --abort。
可以在线练习吗?
可以。打开终端在线编辑器,就能在浏览器里的真实 shell 中运行 git pull,无需安装。Coddy 的免费互动 Git 课程也会一步步教你使用远程仓库。
Coddy 编程语言插图

在 Coddy 学习 Git

开始