git fetch 和 git pull 的区别

原文

http://www.tech126.com/git-fetch-pull/

两者区别

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

git fetch

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

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

以上命令的含义:

  1. 首先从远程的origin的master主分支下载最新的版本到origin/master分支上
  2. 然后比较本地的master分支和origin/master分支的差别
  3. 最后进行合并

上述过程其实可以用以下更清晰的方式来进行:

git fetch origin master:tmp git diff tmp git merge tmp

从远程获取最新的版本到本地的tmp分支上之后再进行比较合并

git pull

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

git pull origin master
  • 上述命令其实相当于git fetch 和 git merge
  • 在实际使用中,git fetch更安全一些
    • 因为在merge前,我们可以查看更新情况,然后再决定是否合并

总结

参考:https://blog.csdn.net/weixin_41975655/article/details/82887273 的回复
git在本地会保存两个版本的仓库,分为本地仓库和远程仓库。

  1. 本地仓库就是我们平时 add、commit 的那个仓库。
  2. 远程仓库可以用git remote -v查看(这里的远程仓库是保存在本地的远程仓库,等同于另一个版本,不是远程的远程仓库)。

下面说说 fetch 和 pull 的不同。

  • fetch 只能更新远程仓库的代码为最新的,本地仓库的代码还未被更新,我们需要通过 git merge origin/master 来合并这两个版本,你可以把它理解为合并分支一样的。
  • pull 操作是将本地仓库和远程仓库(本地的)更新到远程的最新版本。 如果想要更加可控一点的话推荐使用fetch + merge。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值