工作中有一次不小心提交了不该提交的代码到GIT上,而且在发现之前又提交了几个commit,现在想在GIT服务器上永久删除这个commit,具体步骤记录如下。
假设当前分支为master,当前的commit情况如下,现在需要删除commit_id_2和commit_id_4:
commit_id_1 commit_id_2 commit_id_3 commit_id_4 commit_id_5 ....
git checkout -b develop git push orign -u develop
git reset --hard <commit_id_5>
git push orign HEAD --force
git cherry-pick commit_id_3 git cherry-pick commit_id_1 git push orign develop
git push orign --delete master // 或者 git push orign :master // 注意:master一般是默认分支,你需要先将默认分支设置为develop才能删除 git checkout -b master git push orign -u master // 最后将master重新设置为默认分支
操作比较繁琐,但是比较保险,如果有什么好方法,可以分享一下。。
Delete commits from a branch in Git
Move the most recent commit(s) to a new branch with Git