git fetch 和git pull 的区别

git fetch

  1. git fetch命令用于从另一个存储库下载对象和引用。
  2. git fetch可以从单个命名的存储库或URL中获取,也可以从多个存储库中获取,如果给定了,并且配置文件中有一个远程条目
  3. 拉取远程所有分支。

    git fetch origin 
    上述命令从远程refs/heads/命名空间复制所有分支,
    并将它们存储到本地的    refs/remotes/ origin/命名空间中,
    除非使用分支.<name>.fetch选项来指定非默认的refspec
  4. 可以合并远程到本地

    git fetch origin +pu:pu maint:tmp
    此更新(或根据需要创建)通过从远程存储库的分支(分别)pumaint提取来分支本地存储库中的putmp。
    即使没有快进,pu分支将被更新,因为它的前缀是加号; tmp不会。
  5. 通过远程分支和本地分支比较合并代码。

     git fetch <remoteBranch> <localBranch>
     git checkout -b newBranch origin/master
     取回远程的某一个分支, 你可以在本地新建一个分支,来合并指定的远程分支的代码。
     或者
     git diff localBranch (git log -p localBranch origin/remoteBranch)
     git merge localBranch
     取回远程分支到本地的指定分支上,但是并不直接merge,而是先比较2个分支,在决定是 否合并分支。

    其实,fetch和pull的区别就是,前者可以先拉去远程分支到本地,你可以查看比较后,在做决定,而后者则是执行了fetch +merge 强行合并了2个分支(fast-forward)。 其实还是fetch+diff+merge 比较好一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值