目录
概述
引用网上的一张图来说明
对比
git fetch
1.git fetch
这将更新git remote 中所有的远程repo 所包含分支的最新commit-id, 将其记录到.git/FETCH_HEAD文件中。
2.git fetch remote_repo
这将更新名称为remote_repo 的远程repo上的所有branch的最新commit-id,将其记录。
3.git fetch remote_repo remote_branch_name
这将这将更新名称为remote_repo 的远程repo上的分支: remote_branch_name。
4.git fetch remote_repo remote_branch_name:local_branch_name
这将这将更新名称为remote_repo 的远程repo上的分支: remote_branch_name ,并在本地创建local_branch_name 本地分支保存远端分支的所有数据。
FETCH_HEAD: 是一个版本链接,记录在本地的一个文件中,指向着目前已经从远程仓库取下来的分支的末端版本。每一个执行过fetch操作的项目都会存在一个FETCH_HEAD列表,其中每一行对应于远程服务器的一个分支。当前分支指向的FETCH_HEAD,就是这个文件第一行对应的那个分支.
git pull
执行步骤:
1.基于本地的FETCH_HEAD记录,比对本地的FETCH_HEAD记录与远程仓库的版本号。
2.git fetch 获得当前指向的远程分支的后续版本的数据。
3.利用git merge将其与本地的当前分支合并。