一:撤销commit
当我们提交了代码,进行了下面的操作
git add .
git commit -m"提交初始的信息"
如果我们想撤回commit,但是代码仍然保留
git reset --soft HEAD^
// 或者
git reset --soft HEAD~1
撤销commit,但是不撤销git add .
补充参数说明
--mixed
不删除工作空间改动代码,撤销commit,并且撤销git add .
--soft
不删除工作空间改动代码,撤销commit,不撤销git add .
--hard
删除工作空间改动代码,撤销commit,撤销git add .
二:修改commit message
1,修改最新的一次commit信息
git commit --amend
进入vim操作界面,点击字母i然后进入INSERT模式,然后对commit信息进行修改,然后按ESC退出,按:wq保存退出。执行git log会发现最近的一次commit信息被修改了。
执行过程中可能遇到的问题:
1,E45:'readonly' option is set(add ! to override)
该错误是当前用户没有权限对文件进行修改。所以:wq!强制保存退出
2,修改完之后,提示:Waiting for your editor to close the file...
不进入vim编辑模式,一般git默认编辑器使用的是cat,需要将编辑器设置为vim
git config --get core.editor // 获取当前默认编辑器
// cat
// 重新设置默认编辑器为vim
git config --global core.editor "vim"
2,修改多次commit信息
1,git log // 查看提交的commit消息
2,git rebase -i HEAD~i ,然后将对应的pick改成e或者edit(可以同时改多个)
git rebase -i HEAD~2 // 修改最新修改的2次commit
3,然后会提示使用 git commit --amend去修改,改好之后用 git rebase --continue 完成
4,改好之后,push提交就好