Skip to content

git pull命令

git pull命令用于从另一个存储库或本地分支获取并集成(整合)。

git pull命令的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并,它的完整格式稍稍有点复杂。

将远程存储库中的更改合并到当前分支中。在默认模式下,git pull是git fetch后跟git merge FETCH_HEAD的缩写。

更准确地说,git pull使用给定的参数运行git fetch,并调用git merge将检索到的分支头合并到当前分支中。 使用--rebase,它运行git rebase而不是git merge。

img

在这种情况下,git pull 将从本地和主要分歧点下载所有更改。在此示例中,该点是 E。git pull将获取 ABC 的分歧远程提交。然后,拉取过程将创建一个新的本地合并提交,其中包含新的分叉远程提交的内容。

img

在上图中,我们可以看到新的提交 H。这个提交是一个新的合并提交,包含远程 ABC 提交的内容,并有一个合并的日志消息。此示例是少数git pull合并策略之一。--rebase可以传递一个选项git pull以使用 rebase 合并策略而不是合并提交。下一个示例将演示 rebase pull 的工作原理。假设我们处于第一个图表的起点,并且我们已经执行了.git pull --rebase

img

在此图中,我们现在可以看到 rebase pull 不会创建新的 H 提交。相反,rebase 复制了远程提交 A--B--C 并重写了本地提交 E--F--G 以在它们之后出现在本地 origin/main 提交历史中。

常用选项

shell
$ git pull <remote>

获取当前分支的指定远程副本并立即将其合并到本地副本中。git fetch <remote> 这与后面的相同git merge origin/<current-branch>。

shell
$ git pull --no-commit <remote>

与默认调用类似,获取远程内容但不创建新的合并提交。

shell
$ git pull --rebase <remote>

与之前的 pull 相同,而不是使用git merge将远程分支与本地分支集成,而是使用 git rebase.

在拉取期间提供详细输出,显示正在下载的内容和合并详细信息。

前端知识体系 · wcrane