星星之火-git撤销commit操作和修改commit注释

本文最后更新于:January 24, 2022 pm

积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里,不积小流无以成江海。齐骥一跃,不能十步,驽马十驾,功不在舍。面对悬崖峭壁,一百年也看不出一条裂缝来,但用斧凿,能进一寸进一寸,能进一尺进一尺,不断积累,飞跃必来,突破随之。

目录

一般在使用一下命令之后

1
2
git add .
git commit - m "本次提交说明"

想要撤回commit时,或者不得不撤回时的做法。

不得不撤回的情况,比如:

github限制文件大小为50M,但你放了一个100M的文件。这时在提交(push)时会给出提示信息,表示文件超出了文件限制大小,提交失败了。你不得不把文件删除掉或者拆成小文件。当你解决点文件大小问题后,当你再次提交(push)时,你会发现依旧报了文件超限制的错,而且还是和上次一模一样的。这是因为使用了commit,所以不得不返回到未提交的状态。

解决办法

先说解决办法:执行以下命令(仅仅是撤回commit操作,写的代码之类的仍然保留。)

1
git reset --soft HEAD^

这样就成功的撤销了你的commit。然后再重新提交即可(如下操作)。

1
2
3
git add .
git commit -m "12345"
git push

参数说明

—mixed

不删除工作空间改动代码,撤销commit操作,并且撤销git add . 操作。这个为默认参数,git reset --mixed HEAD^git reset HEAD^ 效果是一样的。

1
git reset --mixed HEAD^

—soft

不删除工作空间改动代码,撤销commit操作,不撤销git add . 操作。

1
2
git reset --soft HEAD^
git reset --soft HEAD~1 //等同上面,都是返回上一次,将1写为2则为返回上上次

—hard

删除工作空间改动代码,撤销commit操作,撤销git add . 操作。

完成这个操作后,就恢复到了上一次的commit状态。

1
git reset --hard HEAD^

修改commit的注释

如果commit注释写错了,只是想改一下注释,执行:

1
git commit --amend

此时会进入默认vim编辑器,修改注释完毕后保存就好了。(如果是已经提交到了远程仓库,则需要先pull一下)然后再push,这样注释就会修改成功。