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.

来源:
https://blog.csdn.net/huang211630/article/details/73612068
https://blog.csdn.net/u010688587/article/details/52246859

随机推荐
什么是 Dao、Service、Controller、Util 和 Model ?
如何解决mysql delete表数据后,表空间大小不变的问题
跟Github学习设计不符合 CRUD 情况的RESTful API
Filezilla Server和防火墙设置的相关知识(主动连接和被动连接)
如何通过网页启动应用程序
Sublime Text 3为新的扩展文件类型实现语法高亮
PHP 为什么容易被渗透
CentOS 8 安装 Apache 和 PHP
PDO预处理语句和存储过程
ps -ef | grep 输出的具体含义