Git永久刪除commit
工作中有一次不小心提交了不該提交的代碼到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重新設置為默認分支
操作比較繁瑣,但是比較保險,如果有什么好方法,可以分享一下。。
參考:
本文由用戶 mx64 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!