# Day28--让commit像战国时代一样分分合合

上一篇我们学到怎麽使用Vim,还有修改commit message,这次要做的事情呢,就是要来合并跟拆解commit massenge。

合并commit

Well接下来的起手势还是一样啦,先来个:

git log --oneline

这个时候就可以看到我们的历时的commit纪录,不过总觉得有点多又有点杂。

那就来开个互动模式吧!

git rebase -i 507908b

一样来到刚刚那个地方,不过,这是想要把一些Vim的编辑重点稍微看一下:

我们可以看到其实指令有很多种,像上一篇我们就是用reword来做编辑,而这次呢,我们会使用到的是:

squash

well,来看看会变怎麽样:

好的,这边做的变更,其实是有一些意义的,因为我们觉得某一些纪录是多余的,所以我们想把它合并起来,

而我们必须知道一件事情:

互动模式中,纪录的由上而下就是最旧的纪录到最新的纪录,这个跟我们用:

git log --oneline

这个指令叫出来的结果并不相同,必须要注意一下。

好的,那我们下squash这个指令的主要意义其实也是要让我们合并纪录,那大概知道之後,下了squash的那行纪录就会跟前一行进行合并了,我们等等可以注意一下哪些会消失!

然後下完指令,跟上一篇一样会进行全部的commit message的修改,我这边就按照顺序改成:

大致上是完成了,这个时候再把常用的指令给它下下去:

git log --oneline

这个时候就会看到一些合并的资料啦!

拆解commit

上面我们看到如何使用合并commit,我们这次要另外做的就是把一个commit拆成多个,这个要怎麽做呢?

我们一样就是下最熟悉的指令:

git log --oneline

看一下现在的状态,然後也是下rebase:

git rebase -i 507908b

然後一样会跳出Vim编辑器

这个时候我们要做的就是另外一个指令啦:

edit

这个时候会突然停下来,嗯?

这个时候,我们要把一个commit拆成两个,也就是说,之前好像有学过怎麽拆掉commit:

git reset HEAD^

这样就会让我们的状态回到原先没有合并的样子,老样子下一个指令:

git status

还有下面的状态,由於刚刚拆出来的commit,我们的档案也一起被拆出来了在工作目录,可以看到状态是Untracked:

所以接下来要做的事情就是要把它加回去罗!

git add 
git commit -m "....."

用上面的指令把弃置在工作目录的红色档案加回去吧

然後,最後也要记得,由於现在的状态是在rebase,所以还是要继续把rebase执行完成:

git rebase --continue

这样,全部就结束了!

tags: 铁人赛

<<:  Day29-浅谈 React Concurrent Mode & 相关功能(Fiber、Suspense、useTransition、useDeferredValue)

>>:  [Day28] 介绍 CRUD

Day28:复习 Coroutine

不知不觉来到了第28天,最後我们来做个复习吧。 Coroutine 的目的 用来解决非同步程序执行的...

SQL Server 死结 (deadlock) 的分析查询 - 心得分享

DBABootcamp 在 SQL Server, 死结的发生是因为有两个或多个工作(process...

Day27:用 EnvironmentObject 传递数据

前言 今天来创建具体的 Featured View。 实作 创建一个 FeaturedView fi...

Day8-滚动视差(上)_前有文字

今天试着写了滚动视差的网站 滚动视差主要是靠东西不同的滚动速度来做到前後落差的感觉 先看成品 先做最...

Day 10 - JavaScript(1) : 变数与资料类型

前言 今天先介绍一下JavaScript的一些背景, 再说一下JavaScript的变数与资料类型。...