git 第二次提交_git(五 合并提交命令)

场景:本地做了四次提交,想把第 2、3、4 次提交合并,只保留第二次提交的commit message

编辑器上的git记录.png

解决方案:

1、git reflog 查看所有的提交记录

p.s. git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作);git log 命令可以显示所有提交过的版本信息,看不到删除的记录。所以买后悔药回退删除记录的时候,可以用 git reflog

命令行查看提交记录.png

上面的图片展示了,一共四次提交,按照时间倒序排列分别是 第 4、3、2、1次提交

2、git rebase -i “最新的一个想保留的 Commit”

意思是,我想合并2、3、4,那么最新一个想保留的 commit 就是 第一次 commit,他的hash值为 ae9c811,输入下列命令并回车

git rebase -i ae9c811

或者

# 即将可以编辑的信息不包括起点,包括终点,起点比终点距离现在时间久远

git rebase -i [startpoint] [endpoint]

rebase指定位置

3、选择要合并的 commit :上述步骤完成后会跳出下图界面

注意这个时候的顺序:最近一次提交在最下面

选择合并的commit及其指令.png

前面三行是我们需要操作的三个 Commit,每行最前面的是对该 Commit 操作的 Command。关于每个 Command 具体做什么,下面的注释写得非常清楚。为了完成我们的需求,我们可以关注到这两个命令:

# 使用该 Commit,但会被合并到前一个 Commit 当中

s, squash = use commit, but meld into previous commit

# 就像 squash 那样,但会抛弃这个 Commit 的 Commit message

f, fixup = like "squash", but discard this commit's log message

我们可以选择把第 3、4 次的commit message合并到第二次上面,修改command如下,并保存退出:

修改command.png

4、编辑合并 commit 的 commit message

上述步骤完成后,会跳出如下界面

编辑commitMessage.png

通过下面的注释,我们可以知道,这里其实就是一个编写 Commit Message 的界面,带 # 的行会被忽略掉,其余的行就会作为我们的新 Commit Message,于是,我们编辑一下,保存退出

编辑完成.png

5、检查:使用git log检查

git log

结果如下:

log结果.png

注意,使用git reflog仍可以查看最初的命令:

reflog结果.png

两者的区别在于,git log只显示保留的,git reflog可以显示 reset 和 rebase、删除的版本

编译器的可视化git工具中的展示:

image.png

这个时候再push,提交记录上就非常好看了

请注意:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值