冲突还在用git merge吗?互联网公司都用git rebase

指针苔藓
• 阅读 1419

git merge 和 git rebase的区别

目的都是将一个分支的commit合并到到另外一个分支中去

git merge

  1. 在gitlab上新建一个项目,push一个test文件上去
    冲突还在用git merge吗?互联网公司都用git rebase
    2.在本地修改test文件做两次commit,每次commit都在文件中加一句修改

冲突还在用git merge吗?互联网公司都用git rebase

冲突还在用git merge吗?互联网公司都用git rebase

冲突还在用git merge吗?互联网公司都用git rebase
3.在远程仓库中直接修改文件并commit,模拟其他开发者的commit

冲突还在用git merge吗?互联网公司都用git rebase

冲突还在用git merge吗?互联网公司都用git rebase

4.如果此时我push本地的提交到远程,就会被拒绝,因为远程和本地已经各自有commit了,我们常规的做法是git pull一下,在本地解决冲突,然后继续push,本质上git pull = git fetch + git merge

产生冲突:

冲突还在用git merge吗?互联网公司都用git rebase
冲突还在用git merge吗?互联网公司都用git rebase

处理冲突:

冲突还在用git merge吗?互联网公司都用git rebase

重新走add commit 然后push,可以看到必须将合并当作一个新的commit:
冲突还在用git merge吗?互联网公司都用git rebase

git rebase

如果我们此时采用git pull --rebase,也就是=git fetch + git rebase

  1. 一样本地commit2次,远程commit2次
    冲突还在用git merge吗?互联网公司都用git rebase

冲突还在用git merge吗?互联网公司都用git rebase

  1. 使用可以看到git pull --rebase,还是会提示我们去处理冲突,但是从git log 上可以看出明显已经发生了rebase,也就是变基,本地分支基于了远程的最新commit,而不是上次的本地commit
    冲突还在用git merge吗?互联网公司都用git rebase

冲突还在用git merge吗?互联网公司都用git rebase

  1. 处理冲突,每处理完一次本地commit冲突,用git add标记冲突已处理完,用git rebase --continue继续处理下一个本地commit,也可以先用git rebase -i将本地的commit合并为一个commit,这样git pull --rebase就能一次处理所有的冲突

冲突还在用git merge吗?互联网公司都用git rebase

  1. push到远程之后,在分支图可以明显看到,跟merge的区别在于,rebase不会产生分支,并且也不会产生新的提交

冲突还在用git merge吗?互联网公司都用git rebase

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
放学路上 放学路上
3年前
git常见合并冲突场景以及解决办法
git很好用,但是遇到合并冲突就会很痛苦!在此之前我一直都是个人开发者,因此对git的使用也不熟悉,本文将持续总结我在使用git合并过程中遇到的冲突的场景以及产生冲突后的解决办法。如果有不足的的地方还请各位大佬指正!一、第一种情况1、场景描述:当两人都拉取了同一个分支的代码,然后两人都对代码进行了修改,假设其中一人把他修改完的代码上传到master分支,这时
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
住儿 住儿
2年前
Git Rebase
什么是gitrebase?gitrebase是将更改从一个分支合并到另一个分支的两个git过程之一(另一个是gitmerge)。虽然merge总是可以简单的地合并分支,但是
小万哥 小万哥
2年前
Git分支教程:详解分支创建、合并、删除等操作
Git是一种强大的分布式版本控制系统,它的分支功能使得团队协作和代码管理变得更加灵活和高效。分支可以让开发人员在不影响主线开发的情况下进行并行开发和实验性工作。本篇博客将详解Git分支的创建、合并、删除等操作,帮助你更好地理解和使用Git的分支功能。分支的
绣鸾 绣鸾
1年前
Fork for Mac(Git客户端)
是一款适用于Mac平台的Git客户端,它提供了一系列强大的功能,包括分支管理、代码比较、合并和冲突解决等。以下是Fork的一些特点和优点:直观的用户界面:Fork具有直观的用户界面和简单易用的操作,可以帮助用户快速地学习和使用Git。分支管理:该软件提供了
小万哥 小万哥
1年前
Git 分支管理:优化版本控制与应急处理的关键策略
使用Git分支:轻松管理不同版本和应对紧急情况的最佳实践使用Git分支在Git中,分支是主仓库的新/独立版本。假设你有一个大型项目,需要对其进行设计更新。没有使用Git时:复制所有相关文件以避免影响实时版本开始进行设计工作,并发现代码依赖于其他文件中的代码
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(