git fetch和git pull区别详解

git fetch 相当于从远程获取最新版本到本地,不会自动merge处理

第一部分:git fetch

通过git fetch –help查看官方描述为:
git fetch是远程仓库下载objects和refs,默认远程仓库名称为origin,git fetch origin master理解为从远程origin仓库下载master分支内容到本地的remotes/origin/master分支。ref名称和object名称临时保存在.git/FETCH_HEAD文件里边。

处理命令为:

git fetch origin master
git branch -av
git log -p master.. origin/master # 比较master分支和origin/master分支差异
git merge origin/master # 将origin/master分支内容合并到本地master分支

理解过程为:

  1. 从远程origin的master分支上下载最新的版本到origin/master分支上
  2. 比较本地的master分支和origin/master分支的区别
  3. 最后进行合并处理

等效于:

git fetch origin master:tmp # 从远程origin下载master分支内容到本地tmp分支
git diff tmp # 比较当前master分支和tmp分支差异
git merge tmp # 将tmp分支内容合并到master分支
git branch -av # 查看当前版本库全部分支情况
git branch -d tmp # 删除掉临时tmp本地分支

第二部分:git pull

git pull 相当于是从远程获取最新版本并merge到本地

git pull origin master

理解过程为:
git pull = git fetch + git merge两个过程,在实际使用过程中,git fetch更安全,因为在merge之前,我们可以查看更新情况,决定是否合并。

posted @ 2022-01-05 11:28  民宿  阅读(701)  评论(0编辑  收藏  举报