如果对提交过的 commit 信息描述不满意,可以对 commit 描述进行更改。修改分为:
- 修改最新的 commit
- 修改老旧的 commit
- 把连续多个 commit 合并成一个
- 把间隔几个 commit 合并成一个
注: 修改后,commit ID 也会改变。
- 更改最新的 commit
命令:
$ git commit -amend
2. 修改老旧的 commit 信息
命令:
git rebase -i parent_commit_id
注: parent_commit_id 是要修改的老旧的 commit 上一个 commit ID
3. 把连续多个 commit 合并成一个
命令:
git rebase -i parent_commit_id
注: parent_commit_id 是要合并的连续多个 commit 最早的那个的上一个 commit id。
4. 把间隔的几个 commit 合并成一个
命令:
git rebase -i parent_commit_id
注: parent_commit_id 是要合并的间隔多个 commit 最早的那个的上一个 commit id。
总结:
其实除了第一个,2/3/4 都是一个命令。不同的是在交互式的命令窗口,对 commit 及 命令操作。
交互式命令窗口对命令如下:
# 命令:
# p, pick <提交> = 使用提交
# r, reword <提交> = 使用提交,但修改提交说明
# e, edit <提交> = 使用提交,进入 shell 以便进行提交修补
# s, squash <提交> = 使用提交,但融合到前一个提交
# f, fixup <提交> = 类似于 "squash",但丢弃提交说明日志
# x, exec <命令> = 使用 shell 运行命令(此行剩余部分)
# b, break = 在此处停止(使用 'git rebase --continue' 继续变基)
# d, drop <提交> = 删除提交
# l, label <label> = 为当前 HEAD 打上标记
# t, reset <label> = 重置 HEAD 到该标记
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]