git处理本地commit记录

2,025 阅读2分钟

本文主要记录操作commit记录的使用场景

目录结构如下:

git-demo
└── index.js

搭建环境

mkdir git-demo
cd git-demo
git init
touch index.js

首先添加一些commit记录(添加过程省略)

单行查看提交记录

git log --oneline

结果如下:

此刻发现最新的一条commit message单词尾字母大写,准备修改这条提交记录

修改最近一次的提交信息

git commit --amend

输入 i 进入insert模式进行编辑,修改完毕之后按下esc退出insert模式,输入 :wq 保存退出

当你保存并退出后,此时会有一条新的commit作为你最新一次的提交

我们再次查看提交记录,发现记录已更新并且与之前的commit hash值不同

修改非最近一次的提交信息

回过神来发现e96f0a3这条记录的单词拼错了,由于git commit --amend只能对最新的那条提交记录进行编辑,这次使用git rebase命令来进行修改非最近一次的提交信息

由于修改的是commit hash为e96f0a3这条记录,那么在git rebase命令参数中填入要修改前一条节点的commit hash

git rebase -i d6f7042

细心的你一定发现了rebase状态下的顺序与平时查看的记录正好是相反的

pick 保留该commit
reword 保留该commit 调整commit message
edit
squash 与前一个commit进行合并
fixup 与前一个commit进行合并,使用前一个commit message来表示
exec 执行shell命令
drop 删除commit

保存退出后弹出了对话框

修改完毕

合并多条提交记录

合并second commit ~ fourth commit

git rebase -i d6f7042

在要合并的commit前改成s

修改commit message

查看修改后的commit记录

Git-Tools-Rewriting-History