Git - 代码同步的两种方式

git pull

pull操作相当于先做了fetch操作,然后紧接着做了git merge的操作。它会先从 .git/config 中查找本地当前所在分支对应的远程分支配置,比如:

[branch "master"]
remote = origin
merge = refs/heads/master

一般经常使用3种格式:

  • 第一种,默认操作
git pull

此时会把master分支拉下来并与当前分支进行 merge 操作,可以通过指定 --rebase 选择rebase合并操作。

  • 第二种,rebase合并
git pull --rebase

如果当前分支在 .git/config 该文件中的配置不存在,那么必须指定对应的远程分支名进行pull操作,否则会报错:

您要求从远程 'origin' 拉取,但是未指定一个分支。因为这不是当前
分支默认的远程仓库,您必须在命令行中指定一个分支名。
  • 第三种,从某个分支pull下来

这个命令会忽略分支的对应跟踪关系,而是从指定的分支pull到当前所在分支上:

git pull origin test_branch

git fetch

fetch操作会把远程仓库拉到本地仓库中来,默认包括所有远程仓库中的远程分支全都拉取到本地。默认这些分支并不会被checkout到工作区,当然通过一些参数可以指定是否要checkout出来。
它常用的操作如下:

  • fetch整个仓库

这个命令会更新仓库中所有分支

$ git fetch origin
  • fetch指定远程分支

单独更新仓库中的某一个分支

$ git fetch origin master
  • fetch指定分支并checkout到本地分支

比如想要fetch远程仓库中的master分支,并checkout到本地分支tmp上,可以使用如下命令:

$ git fetch origin master:tmp

一般在项目中我会经常使用这样的操作:

git fetch origin master

先把远程仓库中的master分支更新下来,然后执行rebase操作,更新到工作区:

git rebase origin/master

这样保证了我们的提交是线性关系的,而不是merge形成的交叉关系。关于rebase和merge的提交介绍,后续再其他文章介绍。


欢迎扫码关注我的公众号!
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值