本文主要记录操作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记录