修改最近提交

背景:发现已经push到远程分支的commit信息不够规范,想要将其覆盖,而不是添加多一条新的commit信息。

法一: “git commit --amend”

该命令可修改最近一次提交的提交信息。

  • 若想修改最近一次提交的内容:

修改内容后暂存它们,然后再用该命令提交新的内容,以替换掉旧的最近一次提交。

  • 一般内容修改后,commit的信息也会有修改的需求。如果不想修改提交信息,仅仅是修改了内容:

同样是修改内容后暂存它们,然后通过以下命令避免不必要的编辑器环节即可:

git commit --amend --no-edit

修改远程的提交信息

这只是修改了本地的提交信息。若要修改远程的,需要强制推送:

git push --force

法二: “git rebase -i HEAD~1”
  1. 首先,使用 “git log” 查看历史记录。提交记录会按时间倒序展示,即前面的是最后提交的。
  2. python的git修改提交列表_推送

  3. 接着,用该命令确认我们想改的提交。这意味着,该命令可修改多个提交。如,想修改3个:

git rebase -i HEAD~3

终端会显示我们要修改的提交:command(pick) + commit id + commit message

python的git修改提交列表_sed_02

此时的展示顺序是按时间顺序排列的。即,第一行是最早提交的信息。

  1. 其次,将我们想修改的提交的命令由 “pick” 改为 “edit” 。修改完成之后,保存修改。
  2. 依次使用 “git commit --amend” 和 “git rebase --continue” 修改
    在第三步,我们保存了修改之后,git的分支就会改为第一个edit的commit id。接着我们输入命令 “git commit --amend” ,同法一,这时便可以修改提交信息。修改完后,输入命令 “git rebase --continue” 保存,继续修改下一个。以此类推。最后全部完成后,会提示:

Successfully rebased and updated refs/heads/master.

python的git修改提交列表_sed_03

5.使用 “git push -f” 强制更新远程服务器

注意
  • 在上述操作之前我们要保证当前分支是最新代码,且已经提交了所有本地修改。
  • 强制推送时,一定要加 -f,否则我们edit的commit会添加到之前的commit后面,而不是更新原来的commit。
  • 在编辑提交信息时,若没有设置,会默认打开vi编辑器:
  • 按 i 键,开启编辑模式;
  • 编辑完后按下 esc 键退出编辑;
  • 输入 “:wq” (在末行显示)保存并退出编辑器;