修改前一次的提交:git commit --amend
有时你提交过代码之后,发现一个地方改错了,你下次提交时不想保留上一次的记录;或者你上一次的commit message的描述有误,这时候你可以使用接下来的这个命令:git commit --amend,然后就进入了修改模式:
如果你提交了commit,同时push到远端了,那如何修改远端的commit信息呢?
首先还是使用git commit --amend进行修改,如果这个时候你直接push是会报错的,因为你本地修改后的commit id和远程的commitid已经不一致了,所以你需要git push -f 强制推送。
这里不推荐使用先git pull 然后在git push,因为git pull 会生成一个多余的commit id : Merge branch 'dev' of gitee.com:pengchangjun/git-test into dev, 这个多余的commitid 是我们不需要的,所以直接用git push -f是推荐的。
git commit --amend --no-edit的使用
如果你修改文件后提交了commit,但是发现没有修改完,然后补充后提交,这个时候就没有必要在写一个commit信息,执行git commit --amend --no-edit就可以复用上一次提交的message。
git rebase 修改以前的commit
如果你要修改commitid为989sdfdsf的message,命令行里面不能写989sdfdsf,而是写他的父级commitid:dcab7a07288
git rebase -i dcab7a07288
接着修改pick为reword,然后进行修改即可。
怎样把连续的多个commit整理成1个
git rebase -i [startpoint] [endpoint]
其中-i的意思是--interactive,即弹出交互式的界面让用户编辑完成合并操作,[startpoint] [endpoint]则指定了一个编辑区间,如果不指定[endpoint],则该区间的终点默认是当前分支HEAD所指向的commit。
把后面三个message的前面修改为s,表示合并到第一个message里面,第一个的前面仍然是pick不变。注意第一行必须是pick不然会报错。