重命名commit

前提:不要对任何已经提交到公共仓库中的commit进行修改(你自己一个人玩的分支除外)想要修改commit的名字,可分修改最近一次的commit,和之前的某次commit。

用到的命名分别为:

git commit --amend
git rebase -i [start point] [endpoint]

1.重命名最新的commit
概述
命名分支最新commit,主要使用到git commit --amend -m 'new_message'命令。(这里的new message用单引号 双引号都可以)。如下图所示。

 

 

 

 注意git commit --amend -m 'new_message'命令相当于撤销之前的提交,然后携带新的信息进行一次新的提交,所以重命名后,该节点的id会发生变化。

2. 重命名历史commit

  • 场景 假如我觉得之前提交的commit中有不妥的,想要重命名。又分第一个commit和中间commit(第一个和最新的之间)。
  • 概述 重命名历史commit相对比较复杂,需要配合rebase相关命令:git rebase -i [start commit_id]
    • 其中[start commit_id]为需要重命名commit的前面的节点的id。如此情景中我们修改1,因此需要其前面的commit_id。
    • 使用 git rebase -i HEAD~3(HEAD~3表示将修改当前版本的近三条commit)
  • 步骤 git log --oneline 查看commit
             假如要修改b的名字。则git rebase -i 8b2c5f

    ② 执行2后,会进入如下界面:

     ③在"b"那一行 写入r,即reword <commit>,然后就进入下一个界面。写入要修改的name即可。

  • 以上使用git rebase -i 8b2c5f后(8b2c5f即对应a),可操作的只有b,c,d。那么如何修改第一个<commit>。 
    使用git rebase -i --root,输入执行后,结果如图。

     

     

     剩下的操作同上。

 

 

 

 3提交远程仓库

如果不光是本地的修改,则使用强制push提交到远程仓库

git push --force             #当前
git push origin master -f #主线

 

posted @ 2021-03-13 17:33  不明白就去明白  阅读(2281)  评论(0编辑  收藏  举报