git fetch与git pull的区别

Git从远程的分支获取最新的版本到本地有2个命令。

1,git fetch:相当于是从远程获取最新版本到本地,不会自动merge。

git fetch origin master
git log -p master..origin/master
git merge origin/master

以上命令含义: 
首先从远程的origin的master主分支下载最新的版本到origin/master分支上, 
然后比较本地的master分支和origin/master分支的差别 
最后进行合并。

用更简单的方式来说 

git fetch origin master:cloud 
git diff cloud 
git merge cloud 


从远程获取最新的版本到本地的cloud分支,然后跟本地的主分支比较在合并。

2,git pull。 
相当于从远程获取最新版本兵合并到本地。

git pull 的运行过程:首先,基于本地的FETCH_HEAD记录,比对本地的FETCH_HEAD记录与远程仓库的版本号,然后git fetch 获得当前指向的远程分支的后续版本的数据,然后再利用git merge将其与本地的当前分支合并。

git pull origin master

就相当于git fetch 和git merge。

在实际使用中,git fetch更安全一些。因为在merge前,我们可以查看更新情况,然后在决定是否合并。

如果你git pull遇到“no teacking infomation”,则说明本地分支与远程分支的链接关系没有创建, 
$git branch -set-upstream branch-name origin/branch-name.

修改时间 2024-11-13

声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
随机推荐
版权相关
RESTful API 执行 delete 返回204无法获取 Body
WordPress 自定义文章类型
JavaScript 对象方法
JWT 存储在 Cookie 和 Web Storage 的区别
CSS 改变 svg 图片颜色
TypeScript 和 Koa 实践
WordPress RESTful API 的授权方式