git 刪除某次指定的提交

由於一次愚蠢的,錯誤的操做,提交了與項目不相干的文件,迎來了第一次刪除某次指定提交的機會。git

reset命令有3種方式:web

1:git reset –mixed:此爲默認方式,不帶任何參數的git
reset,即時這種方式,它回退到某個版本,只保留源碼,回退commit和index信息3d

2:git reset –soft:回退到某個版本,只回退了commit的信息,不會恢復到index
file一級。若是還要提交,直接commit便可code

3:git reset –hard:完全回退到某個版本,本地的源碼也會變爲上一個版本的內容rem

(以上轉自互聯網)
git reset只是在本地倉庫中回退版本,而遠程倉庫的版本不會變化
以刪除master分支爲例源碼

#新建一個備份的分支,數據無價
git branch old_master

#提交本地當前的文件到新建的分支
git push origin old_master:old_master

#本地能夠完全恢復到你想恢復到的版本了
git reset --hard 58093e1355716f0f861b64f1c3dfe59242be28f7

#在web端settings頁面,修改默認分支爲新建的分支,能夠刪除遠程分支了
git push origin :master

#若是出現! [remote rejected] master (deletion of the current branch prohibited),說明沒有設置遠程的默認分支,沒有權限刪除,請在web端settings頁面,修改默認分支爲新建的分支

#進行到這裏,遠程的master分支已經刪除成功
#從新提交本地文件到master分支(此時會自動新建master分支)
git push origin master

#再體驗一下刪除分支
git push origin :old_master

overit

相關文章
相關標籤/搜索