| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> Git 笔记 - git rebase -> 正文阅读 |
|
[开发工具]Git 笔记 - git rebase |
文章目录
01 基本用法描述:
举个例子:现有一个 master 主分支,小明要开发新需求从 master 拉取并创建了名为 dev 的新分支。而当小明开发完后需要合并到 master,但发现 master 相比之前多了一些变更。这时想要同步 master 的改动应该怎么办呢?如下图所示:
dev
master
创建新分支 dev
G
F
B
E
D
C
A
执行
dev
master
小明 dev 复制版
创建新分支 dev
G
F
B
E
D
C
A
F1
G1
02 应用场景2.1 合并子分支到主分支
情景:你从主分支 master 切出分支 dev 进行开发。在你开发的过程中,你的小伙伴将他的修改早已合到 master 中,导致你的分支 dev 落后于 master ,这时想要同步 master 的改动。 操作说明👇👇👇 第 1 步,先查看下 master 和 dev 分支的提交记录:
第 2 步,在 dev 分支里使用 rebase:
第 3 步,再次查看 dev 分支里的提交,同步成功!!!
同步后提交记录示意图如下:
使用 rebase 同步 master 后的提交记录
step 4
step 3
step 2
step 1
calculate-two
calculate-one
update
init
试想:如果使用 首先,通过注释里的提交时间能够发现它们是交叉的,所以采用
同步后提交记录示意图如下:
使用 merge 同步 master 后的提交记录
step 4
calculate-two
step 3
calculate-one
step 2
step 1
update
init
2.2 将某段提交复制到另个分支上
情景:项目会存在多个分支,这时需要将某个分支中的某一大段提交应用到其他分支中。(若只有某一二三个提交,可以使用 cherry-pick 噢) 操作说明👇👇👇 第 1 步,先查看下 master 和 dev 分支的提交记录:
现在想将 dev 中的 step 1 ~ step 3 的提交复制粘贴到 master 中 第 2 步,切换到 master 分支:
第 3 步,使用 rebase 命令进行复制粘贴:
第 4 步,检查 master 记录,成功啦!
2.3 合并多个提交为一个提交
情景:提交多次后,想让推送到远程仓库的提交记录简洁明了。 操作说明👇👇👇 第 1 步,先查看下 dev 分支的提交记录:
现在将 step 1 ~ step 4 的提交合并为一个,且注释为 " add step all " 第 2 步,执行 rebase 命令:
第 3 步,刚回车完 rebase 命令之后,会默认打开 vim,我们需要对未注释的行进行操作,即对本次 rebase 包含的所有提交进行操作,如下所示:
第 4 步,修改后的信息如下,如下所示:
第 5 步,保存上一步修改的内容后,会自动到下一个交互阶段,如下:
第 6 步,修改后的信息如下:
第 7 步,保存后则会退出 vim 界面,展示下面的信息:
第 8 步,但此时咱们的这些修改还处于游离状态,可以简单的理解为只是复制粘贴到了 剪切板,还有真正的复制粘贴到 dev 分支中,所以需要先切换到 dev 分支~
第 9 步,现在将 dev 分支的指针指向咱们最新的地方吧!(指针应该指向哪里呢?大家仔细看看上一步的 checkout 之后的提醒,有一个 commitId 在等着呢 👉 44c49f2)
第 10 步,最后咱们看下 dev 分支的提交记录~成功!!!
2.4 rebase 过程中有冲突,如何解决若
2.5 rebase 成功后,如何撤销情景:从 master 分支拉取一个新的分支 dev,而后 master 新增两个提交 " change one " 和 " change two ",dev 分支新增一个提交 " change ",后来想让 dev 分支同步下 master 最新的改动就执行了 第 1 步,执行
第 2 步,从第 1 步打印出来的记录可以得到 第 3 步,执行命令
要记得,最后需要使用 注意: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 10:48:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |