Git必知必会基础(10):本地冲突(conflicts)解决--rebase

这篇具有很好参考价值的文章主要介绍了Git必知必会基础(10):本地冲突(conflicts)解决--rebase。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/10854115.html

关于rebase

rebase用来变基,就是重新定义(re)起点(base)的作用,即重新定义分支的版本。

在执行变基的过程中,三个常用命令:

git rebase --skip 它表示丢弃当前补丁的重放,即忽略掉当前补丁

git rebase --abort 它表示终止正在进行的变基操作,并且恢复到最初始的状态

git rebase --continue 它表示继续补丁的重放,一般在解决冲突后执行该命令

演示场景

在合并分支过程中,可能会遇到冲突,本篇演示用rebase解决本地冲突。

基于master主分支,创建两个开发分支dev_a和dev_b,分别做修改:

dev_a第一次修改并提交到本地仓库,然后推送到远程仓库
dev_b第一次修改并提交到本地仓库,然后推送到远程仓库
dev_a第二次修改并提交到本地仓库,然后推送到远程仓库
dev_b第二次修改并提交到本地仓库,然后推送到远程仓库

先合并dev_a:切换到dev_a,rebase master分支,没有冲突,然后切换到master,进行merge

然后合并dev_b:切换到dev_b,rebase master分支,产生冲突,解决冲突,然后切换到master,进行merge,最后push到远程master分支

准备数据 

远程数据

git rebase解决冲突的详细过程,git

远程commit id

git rebase解决冲突的详细过程,git

克隆到本地

git rebase解决冲突的详细过程,git

文件内容

git rebase解决冲突的详细过程,git

创建dev_a分支

git rebase解决冲突的详细过程,git

修改qzcsbj.txt内容,然后提交到本地仓库

git rebase解决冲突的详细过程,git

切换到master,创建dev_b分支

git rebase解决冲突的详细过程,git

修改qzcsbj.txt内容,然后提交到本地仓库

git rebase解决冲突的详细过程,git

再次切换到dev_1做一次提交,然后推送到远程仓库

git rebase解决冲突的详细过程,git

再次切换到dev_2做一次提交,然后推送到远程仓库

git rebase解决冲突的详细过程,git

远程分支内容

git rebase解决冲突的详细过程,git

git rebase解决冲突的详细过程,git

git rebase解决冲突的详细过程,git

合并分支并解决冲突

切换到master,拉取最新master

git rebase解决冲突的详细过程,git

先合并dev_a,下面没有冲突,变基成功并更新refs/heads/master

git rebase解决冲突的详细过程,git

git rebase解决冲突的详细过程,git

切换到master进行merge

git rebase解决冲突的详细过程,git

push到远程

git rebase解决冲突的详细过程,git

然后合并dev_b分支,产生冲突,冲突文件是qzcsbj.txt

git rebase解决冲突的详细过程,git

也可以这样查看冲突的文件:git diff --name-only --diff-filter=U

git rebase解决冲突的详细过程,git

查看分支差异:git diff master dev_b

git rebase解决冲突的详细过程,git

冲突文件内容:

git rebase解决冲突的详细过程,git

HEAD(ef2d957)表示dev_b第一次提交

git rebase解决冲突的详细过程,git

修改冲突文件

git rebase解决冲突的详细过程,git

add

git rebase解决冲突的详细过程,git

继续rebase

git rebase解决冲突的详细过程,git

git rebase解决冲突的详细过程,git

第一行改为:

git rebase解决冲突的详细过程,git

保存退出后的结果:生成的新提交id是bd16a7c

git rebase解决冲突的详细过程,git

依然有冲突,HEAD(bd16a7c)表示dev_b第二次提交

git rebase解决冲突的详细过程,git

冲突文件内容:

git rebase解决冲突的详细过程,git

修改冲突文件,然后add

git rebase解决冲突的详细过程,git

继续rebase

git rebase解决冲突的详细过程,git

git rebase解决冲突的详细过程,git

第一行改为:

git rebase解决冲突的详细过程,git

保存退出,结果:变基成功并更新refs/heads/master

git rebase解决冲突的详细过程,git

文件内容:

git rebase解决冲突的详细过程,git

切换到master,执行merge

git rebase解决冲突的详细过程,git

master送到远程仓库

git rebase解决冲突的详细过程,git

如果dev_b在合并前做了很多次commit,那么就要处理很多次冲突,每次解决后执行git rebase --continue

对于单条分支,rebase能够合并多个commit,将多个提交合并成一个提交,命令是:

git rebase -i [commit id]

合并commit id之前的所有commit;-i选项能够提供一个交互界面,分阶段修改commit信息并rebase。

查看分支合并图

git log --graph --oneline

git rebase解决冲突的详细过程,git

git rebase解决冲突的详细过程,git

git log --graph

git rebase解决冲突的详细过程,git

git rebase解决冲突的详细过程,git 

结论:会修改提交历史,无法直观地看出哪些提交是在原分支上完成的,历史记录是一条直线(线性),会显得更为整洁,合并图更易读

分支后续操作

此时分支如果不要了就可以删除

如果要继续在分支在开发,需要同步master分支,rebase即可:

切换到对应分支,使远程库和本地库同步:git pull --rebase origin master

如果有冲突忽略冲突(丢弃当前补丁的重放,即忽略掉当前补丁):git rebase --skip

如果有冲突,强制推送:git push -f origin 当前分支名,如果没有冲突:git push origin 当前分支名

这里基于dev_a分支演示

本地

git rebase解决冲突的详细过程,git

远程

git rebase解决冲突的详细过程,git

无冲突

rebase远程master分支

git rebase解决冲突的详细过程,git

git rebase解决冲突的详细过程,git

推送dev_a到远程分支

git rebase解决冲突的详细过程,git

远程分支内容

git rebase解决冲突的详细过程,git

commit id和主分支的一样

git rebase解决冲突的详细过程,git

有冲突

修改dev_a分支文件内容,并推送到远程分支

git rebase解决冲突的详细过程,git

切换到master

git rebase解决冲突的详细过程,git

修改master分支文件内容,然后推送到远程

git rebase解决冲突的详细过程,git

切换到dev_a分支,rebase远程master,出现冲突

git rebase解决冲突的详细过程,git

丢弃当前补丁的重放,即忽略掉当前补丁,变基成功并更新refs/heads/master

git rebase解决冲突的详细过程,git

文件内容和master一样

git rebase解决冲突的详细过程,git

dev_a远程内容

git rebase解决冲突的详细过程,git

push到远程,报错

git rebase解决冲突的详细过程,git

强制push到远程

git rebase解决冲突的详细过程,git

远程分支内容

git rebase解决冲突的详细过程,git

commit id和master一样

git rebase解决冲突的详细过程,git文章来源地址https://www.toymoban.com/news/detail-837027.html

到了这里,关于Git必知必会基础(10):本地冲突(conflicts)解决--rebase的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python爬虫基础教程 | 第一篇】URL、HTTP基础必知必会

    该专栏开设的目的在于给初学者提供一个学习爬虫的成长平台,文章涉及内容均为必备知识。 可订阅专栏:【Python爬虫教程】 | CSDN秋说 在开始爬虫的开发实战前,需要了解的是URL的概念及组成结构,这具有基础性和必要性。 URL(Uniform Resource Locator,统一资源定位符)是用于

    2024年03月18日
    浏览(36)
  • 必知必会Java

    你好,我是阿光。 最近想着把工作中使用过的java命令都梳理一下,方便日后查阅。虽然这类文章很多,但自己梳理总结后,还是会有一些新的收获。这也是这篇笔记的由来。 今天先聊聊 jps 命令。 jps 命令是JDK提供的一个工具,用于查看目标系统上的Java进程基本信息(进程

    2024年02月05日
    浏览(35)
  • MySql必知必会

    Buffer Pool基本概念 Buffer Pool:缓冲池,简称BP。其作用是用来缓存表数据与索引数据,减少磁盘IO操作,提升效率。 Buffer Pool由 缓存数据页(Page) 和 对缓存数据页进行描述的 控制块 组成, 控制块中存储着对应缓存页的所属的 表空间、数据页的编号、以及对应缓存页在Buffer Poo

    2024年01月22日
    浏览(45)
  • ChatGPT入门必知必会

    更多文章欢迎关注公众号: stackoveriow 2023年是真正意义上的AI之年,因为ChatGPT 2007年,iPhone开启了智能手机时代, 2023年,我们迎来了人工智能时代,我们正处于历史的大转折点上,这也许是启蒙运动级别的思想和社会转折,工业革命级别的生产和生活转折 。继22年12月份从GP

    2023年04月18日
    浏览(57)
  • 《SQL 必知必会》全解析

    不要哀求,学会争取。若是如此,终有所获。 原文:https://mp.weixin.qq.com/s/zbOqyAtsWsocarsFIGdGgw 你是否还在烦恼 SQL 该从何学起,或者学了 SQL 想找个地方练练手?好巧不巧,最近在工作之余登上牛客,发现了牛客不知道啥时候上线了SQL 必知必会的练习题。 《SQL 必知必会》作为麻

    2024年02月08日
    浏览(32)
  • 聊聊Flink必知必会(五)

    聊聊Flink的必知必会(三) 聊聊Flink必知必会(四) 从源码中,根据关键的代码,梳理一下Flink中的时间与窗口实现逻辑。 对数据流执行 keyBy() 操作后,再调用 window() 方法,就会返回 WindowedStream ,表示分区后又加窗的数据流。如果数据流没有经过分区,直接调用 window() 方法则会返

    2024年02月05日
    浏览(49)
  • 聊聊Flink必知必会(六)

    Flink是一个分布式系统,需要有效地分配和管理计算资源才能执行流应用程序。它集成了所有常见的集群资源管理器,如Hadoop YARN和Kubernetes,但也可以设置为作为一个独立的集群运行,甚至作为一个库。 Flink运行时由两种类型的进程组成:一个JobManager和一个或多个taskmanager。

    2024年02月04日
    浏览(37)
  • MySQL必知必会(初级篇)

    数据库 (DataBase,DB),是统一管理的、长期存储在计算机内的、有组织的相关数据的集合。特点是数据见联系密切、冗余度小、独立性高、易扩展,并且可以为各类用户共享。 MySQL :是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的

    2023年04月08日
    浏览(32)
  • 聊聊Flink必知必会(七)

    虽然数据流中的许多操作一次只查看一个单独的事件(例如事件解析器),但某些操作会记住多个事件的信息(例如窗口算子)。 这些操作称为有状态的(stateful)。 有状态操作的一些示例: 当应用程序搜索某些事件模式(event patterns)时,状态(state)将存储迄今为止遇到的事件序

    2024年02月04日
    浏览(34)
  • 聊聊Flink必知必会(二)

    Flink是一个有状态的流处理框架,因此需要对状态做持久化,Flink定期保存状态数据到存储空间上,故障发生后从之前的备份中恢复,这个过程被称为Checkpoint机制。而Checkpoint为Flink提供了Exactly-Once的投递保障。 流处理是一个数据不断输入的过程,为了更好更方便的快照,需要

    2024年02月08日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包