0%

如何修改Git Commit的描述

使用 Git 进行项目的版本管理,的确是能让项目代码更加的受控。但是如果能有清晰的 commit 记录以及描述,那将更是会锦上添花。在需求正常开发完后,有时难免会过于兴奋手滑敲错 commit 的描述。但如果对于不经常手滑的同学来说,可能还没研究过如何修改 commit 的描述。所以今天,我就想通过这一篇文章简单的记录一下 commit 描述的修改过程,顺便给自己留作回顾的作用。

修改 commit 描述分为以下两种情况,但这两种情况步骤基本相同,只是第二种需要在最后多加一步操作:

  1. 还未将代码 push 到远程仓库
  2. 已将代码 push 到远程仓库

修改最后一次 commit 的描述

如果只是想修改最后一次 commit 后的描述,可以直接在命令行中输入以下命令:

1
git commit --amend

输入完后,会出现以下界面(commit 的描述位于界面的第一行):

  1. i 键进入命令行的修改模式,修改位于界面第一行的 commit 描述
  2. 修改完后,按 Esc 键退出命令行的编辑模式
  3. 再输入 :wq 保存并退出,至此 commit 的描述就修改成功啦!

修改最后一次commit的描述

修改之前某次 commit 的描述

如果是想修改之前某次 commit 的描述,则需要比修改最后一次 commit 的描述多上那么几个步骤。其实这个修改的原理,按我的理解就是先把版本回退到你想修改的某个版本,然后再修改当前回退到的版本的 commit 描述,修改完后再回到回退前的最新版本中。那么来吧!

首先在命令行输入以下命令:

1
2
# 命令中最后的数字2指的是显示倒数第几次的commit,比如我这里的2就代表显示倒数第二次的commit描述
git rebase -i HEAD~2

输入完后,会出现以下界面(倒数几次的 commit 的描述都位于界面顶部):

  1. 想修改哪条 commit 的描述,就把该条 commit 描述前的 pick 改成 edit(修改的方式同上)
  2. 修改完后按 Esc 键退出命令行的编辑模式,
  3. 输入 :wq 保存并退出。

修改之前某次commit的描述1

保存并退出后,会出现以下界面:

修改之前某次commit的描述2

然后,再往命令行中输入以下命令:

1
git commit --amend

输入完后,就如同上面那样修改完描述,然后保存并退出后,再往命令行中输入以下命令:

1
git rebase --continue

修改之前的某几次 commit 的描述

修改之前某几次其实和上面修改某次的步骤差不多,不同之处在于以下几点:

  1. 上面,第一个步骤中的命令,数字需要修改
  2. 然后在修改 pickedit 的那一个步骤时,修改多个
  3. 最后依次修改描述(顺序是从旧到新),命令行中基本都会提示你接下来的操作是什么,每次修改一个注释都需要重复上面的最后两个步骤,直至修改完你所标记为 edit 的所有描述为止

已经将代码 push 到远程仓库

在已经把代码 push 到远程仓库的情况下,还想修改 commit 的描述的话,在修改前首先需要从远程仓库 pull 最新的版本到本地仓库,确保两边的版本都是一致的状态。然后再按照情况,选择上面的几种方法来进行修改。最后,修改完需要再强制把本地仓库的版本 push 回远程仓库中。但很重要的一点是,在进行强制 push 之前,需要再三确认没有人往远程仓库提交更新的版本,否则远程仓库中更新的版本将会被你的版本所覆盖。

在命令行中输入以下命令,强制 push 本地仓库版本到远程仓库中:

1
git push --force origin master

大功告成!