Git永久刪除commit
阿新 • • 發佈:2019-01-22
工作中有一次不小心提交了不該提交的程式碼到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
....
一、建立新的分支,用於reset操作
git checkout -b develop git push orign -u develop
二、在新分支develop上,將commit重置到commit_id_4之前的提交
git reset --hard <commit_id_5>
三、提交新分支,覆蓋之前的commit資訊
git push orign HEAD --force
四、按原有的順序恢復不需要刪除的commit,然後提交
git cherry-pick commit_id_3 git cherry-pick commit_id_1 git push orign develop
五、刪除原有的master分支,從develop中checkout一個新分支作為master
git push orign --delete master // 或者 git push orign :master // 注意:master一般是預設分支,你需要先將預設分支設定為develop才能刪除 git checkout -b master git push orign -u master // 最後將master重新設定為預設分支
操作比較繁瑣,但是比較保險,如果有什麼好方法,可以分享一下。。