如果对提交过的 commit 信息描述不满意,可以对 commit 描述进行更改。修改分为:

  1. 修改最新的 commit
  2. 修改老旧的 commit
  3. 把连续多个 commit 合并成一个
  4. 把间隔几个 commit 合并成一个

注: 修改后,commit ID 也会改变。


  1. 更改最新的 commit

命令:

$ git commit -amend
bc874ac51be4f2f37e0bcf78852228ef.png
实战演练https://www.zhihu.com/video/1167391399481245696

2. 修改老旧的 commit 信息

命令:

git rebase -i parent_commit_id

注: parent_commit_id 是要修改的老旧的 commit 上一个 commit ID

ef1a1d5647b1301b56ff7f53a4bf68a2.png
实战演练https://www.zhihu.com/video/1167799082084446208

3. 把连续多个 commit 合并成一个

命令:

git rebase -i parent_commit_id

注: parent_commit_id 是要合并的连续多个 commit 最早的那个的上一个 commit id。

b2df8154bd7f446b9a52f07e1562b2cb.png
实战演练https://www.zhihu.com/video/1167901635727814656

4. 把间隔的几个 commit 合并成一个

命令:

git rebase -i parent_commit_id

注: parent_commit_id 是要合并的间隔多个 commit 最早的那个的上一个 commit id。

81c2cda904c87c04b6ed8dd918fc4205.png
实战演练https://www.zhihu.com/video/1167917690391060480

总结:

其实除了第一个,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>]
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐