前两天和同事交流发现他在日常开发中跟上游保持同步每次都是用git pull操作,而我一直习惯git fetch然后rebase,发现这两种操作后的log是有些区别的。他每次pull操作之后都会自动生成一个merge记录,而使用fetch+rebase就没有。

  查了下发现其实就是git pull命令两种参数的区别:

  git pull --merge  默认参数,相当于:git fetch + git merge

  git pull --rebase 手动指定,相当于:git fetch + git rebase

  git fetch所做的只是把远程库的文件获取到本地,也就是git merge和git rebase的区别。

在Git文档里,关于两个参数的应用场景有个很经典的原则:

  

你可以用rebase来合并那些本地已经修改了但是还没push的提交以保持和上游同步,但从来不要rebase任何你已经push过的任何东西。

先记录一下,想到合适的例子再来补充~

git merge rebase的区别及应用场景的更多相关文章

  1. Git merge rebase cherry-pick 以及 游离commit 的测试

    Microsoft Windows [版本 10.0.17134.345] (c) Microsoft Corporation.保留所有权利. C:\Users\zhangyang\Desktop\b ...

  2. git merge / rebase 分支的新建与合并

    merge https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5% ...

  3. Git----拉取远程分支,git pull,git rebase,git pull --rebase的区别

    git pull 相当于自动的 fetch 和 merge 操作,会试图自动将远程库合并入本地库,在有冲突时再要求手动合并. git rebase 可以确保生产分支commit是一个线性结构,方便ro ...

  4. git merge 和 git merge --no-ff的区别

    git merge –no-ff 可以保存你之前的分支历史.能够更好的查看 merge历史,以及branch 状态. git merge 则不会显示 feature,只保留单条分支记录. 比如:我当前 ...

  5. git merge origin master git merge origin/master区别

    git merge origin master //将origin merge 到 master 上 git merge origin/master //将origin上的master分支 merge ...

  6. [git]merge和rebase的区别

    前言 我从用git就一直用rebase,但是新的公司需要用merge命令,我不是很明白,所以查了一些资料,总结了下面的内容,如果有什么不妥的地方,还望指正,我一定虚心学习. merge和rebase ...

  7. merge和rebase的区别

    前言 我从用git就一直用rebase,但是新的公司需要用merge命令,我不是很明白,所以查了一些资料,总结了下面的内容,如果有什么不妥的地方,还望指正,我一定虚心学习. merge和rebase ...

  8. git merge & git rebase

    git merge & git rebase bug error: You have not concluded your merge (MERGE_HEAD exists). hint: P ...

  9. Git分支merge和rebase的区别

    Git merge是用来合并两个分支的. git merge b # 将b分支合并到当前分支 同样 git rebase b,也是把 b分支合并到当前分支 原理 如下: 假设你现在基于远程分支&quo ...

随机推荐

  1. Django中遇到的mysql问题

    最近在用Django写个网站,连接mysql的时候出现了几个问题,总结一下 写好setting.py和models.py后,syncdb都没什么问题,在测试后台发表文章的时候就出错了,本来是测试mar ...

  2. JS动态计算移动端rem的解决方案

    首先介绍下rem 说起rem就的说px,em: PX为单位 在Web页面初期制作中,我们都是使用“px”来设置我们的文本,因为他比较稳定和精确.但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的 ...

  3. opencv获取像素的值

    opencv中获取图像像素的方法 方法一: IplImage *img = cvLoadImage("Lena.jpg", 0); CvScalar pixel; for (int ...

  4. luogu P1855 榨取kkksc03

    题目描述 以下皆为真实的故事. 洛谷2的团队功能是其他任何oj和工具难以达到的.借助洛谷强大的服务器资源,任何学校都可以在洛谷上零成本的搭建oj并高效率的完成训练计划. 为什么说是搭建oj呢?为什么高 ...

  5. 【分块】hdu5057 Argestes and Sequence

    分块,v[i][j][k]表示第i块内第j位是k的元素数.非常好写.注意初始化 要注意题意,①第i位是从右往左算的. ②若x没有第i位,则用前导零补齐10位.比如103---->00000001 ...

  6. go时间转化

    将string转化为time.Time layout := "2006-01-02 15:04:05" str := "2017-11-24 15:10:22" ...

  7. Problem B: 零起点学算法17——2个数比较大小

    #include<stdio.h> int main() { int n,m; while(scanf("%d %d",&n,&m)!=EOF) if( ...

  8. HTML5 Boilerplate笔记(3)

    HTML5 Boilerplate项目网址:https://github.com/h5bp/html5-boilerplate

  9. Setting an appropriate geodatabase spatial domain

    原文地址:http://webhelp.esri.com/arcgisdesktop/9.1/body.cfm?tocVisable=1&ID=1470&TopicName=Setti ...

  10. RabbitMq_05_Topics

    Topics (using the .NET client) Prerequisites This tutorial assumes RabbitMQ isinstalled and running ...