网站建设采购合同验收,做面食视频网站,网站页面设计最宽可做多宽,网站设计策划书方案一、是什么
先回顾两个命令的定义
git fetch 命令用于从另一个存储库下载对象和引用git pull 命令用于从另一个存储库或本地分支获取并集成(整合)
再来看一次git的工作流程图#xff0c;如下所示#xff1a; 可以看到#xff0c;git fetch是将远程主机的最新内容拉到本地…
一、是什么
先回顾两个命令的定义
git fetch 命令用于从另一个存储库下载对象和引用git pull 命令用于从另一个存储库或本地分支获取并集成(整合)
再来看一次git的工作流程图如下所示 可以看到git fetch是将远程主机的最新内容拉到本地用户在检查了以后决定是否合并到工作本机分支中
而git pull 则是将远程主机的最新内容拉下来后直接合并即git pull git fetch git merge这样可能会产生冲突需要手动解决
在我们本地的git文件中对应也存储了git本地仓库分支的commit ID 和 跟踪的远程分支的commit ID对应文件如下
.git/refs/head/[本地分支].git/refs/remotes/[正在跟踪的分支]
使用 git fetch更新代码本地的库中master的commitID不变
但是与git上面关联的那个orign/master的commit ID发生改变
这时候我们本地相当于存储了两个代码的版本号我们还要通过merge去合并这两个不同的代码版本 也就是fetch的时候本地的master没有变化但是与远程仓关联的那个版本号被更新了接下来就是在本地merge合并这两个版本号的代码
相比之下使用git pull就更加简单粗暴会将本地的代码更新至远程仓库里面最新的代码版本如下图 二、用法
一般远端仓库里有新的内容更新当我们需要把新内容下载的时候就使用到git pull或者git fetch命令
fetch
用法如下
git fetch 远程主机名 远程分支名:本地分支名例如从远程的origin仓库的master分支下载代码到本地并新建一个temp分支
git fetch origin master:temp如果上述没有冒号则表示将远程origin仓库的master分支拉取下来到本地当前分支
这里git fetch不会进行合并执行后需要手动执行git merge合并如下 pull
两者的用法十分相似pull用法如下
git pull 远程主机名 远程分支名:本地分支名例如将远程主机origin的master分支拉取过来与本地的branchtest分支合并命令如下
git pull origin master:branchtest同样如果上述没有冒号则表示将远程origin仓库的master分支拉取下来与本地当前分支合并
三、区别
相同点
在作用上他们的功能是大致相同的都是起到了更新代码的作用
不同点
git pull是相当于从远程仓库获取最新版本然后再与本地分支merge即git pull git fetch git merge相比起来git fetch 更安全也更符合实际要求在 merge 前我们可以查看更新情况根据实际情况再决定是否合并
参考文献
https://zhuanlan.zhihu.com/p/123370920https://segmentfault.com/a/1190000017030384https://juejin.cn/post/6844903921794859021