如何删除某些提交?
删除最新的提交
git reset --hard HEAD^
可以删除最新的一次提交。若要删除多次提交,可以在HEAD后多加几个^。
删除/合并中间的某次提交
git rebase -i <commit_id>
填写要删除的提交的之前的那次提交的id。
之后会打开一个vim界面,显示
1 | pick aaa |
根据提示,使用drop
会弃用那次commit的修改,使用squash
则会将修改融合至上一条commit。根据个人需要进行操作。
同步到远程仓库
上述都是针对本地提交。如果已经提交到github了怎么办?本地删除后直接git push
会显示提交数低于远程仓库,不能执行。
git push origin HEAD --force
强制将当前所在的HEAD所在的提交push到远程仓库,并且使远程仓库的提交记录和本地保持同步。