重命名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 #主线

懒惰不会让你一下子跌到
但会在不知不觉中减少你的收获;
勤奋也不会让你一夜成功
但会在不知不觉中积累你的成果
越努力,越幸运。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注