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。
在这种情况下,git pull 将从本地和主要分歧点下载所有更改。在此示例中,该点是 E。git pull将获取 ABC 的分歧远程提交。然后,拉取过程将创建一个新的本地合并提交,其中包含新的分叉远程提交的内容。
在上图中,我们可以看到新的提交 H。这个提交是一个新的合并提交,包含远程 ABC 提交的内容,并有一个合并的日志消息。此示例是少数git pull合并策略之一。--rebase可以传递一个选项git pull以使用 rebase 合并策略而不是合并提交。下一个示例将演示 rebase pull 的工作原理。假设我们处于第一个图表的起点,并且我们已经执行了.git pull --rebase
在此图中,我们现在可以看到 rebase pull 不会创建新的 H 提交。相反,rebase 复制了远程提交 A--B--C 并重写了本地提交 E--F--G 以在它们之后出现在本地 origin/main 提交历史中。
常用选项
$ git pull <remote>
获取当前分支的指定远程副本并立即将其合并到本地副本中。git fetch <remote> 这与后面的相同git merge origin/<current-branch>。
$ git pull --no-commit <remote>
与默认调用类似,获取远程内容但不创建新的合并提交。
$ git pull --rebase <remote>
与之前的 pull 相同,而不是使用git merge将远程分支与本地分支集成,而是使用 git rebase.
在拉取期间提供详细输出,显示正在下载的内容和合并详细信息。