git代碼回滾
有時候我們用git提交代碼後發生了錯誤,代碼沖突了啊等等,我們需要將代碼回到以前的某個版本
git代碼回退有兩種辦法
一、git reset(推薦):
它是將最新的commit刪除,用以前的某個版本的代碼替代最新的代碼,這裏我們測試下
這裏有很多的commit,我現在想將代碼退回到第三個commit的時候,如果是用git命令,在項目的根目錄就是有.git隱藏文件的目錄,右擊打開黑窗口
git reset --hard d83053a1a3ad6e169300b70a1f38b8b3d13d8576(這裏是commit的標識)
執行完我們就回到了這個版本的代碼,我們的本地代碼,head什麽的都改過來了,不過遠程倉庫的代碼沒有改過來,這個時候我們需要用
git push -f origin dev //強行推送我們的代碼,用我們現在的代碼完全覆蓋遠程倉庫的代碼,正常推送會有沖突,這裏不會有什麽沖突的
如果我們用tortoise git(烏龜git)界面化git,我們右擊項目點開show log
找到我們的某次提交,右擊選擇reset dev to this...,選擇hard
確定後本地就已經改過來了,右擊項目push代碼,勾選unknown changes(就是強制推送代碼的意思)
遠程倉庫的也改過來了
這裏就會發現我們以前的commit不見了,我們想要恢復到的第三個commit上來了,成了最新的commit
二、git revert
這種方法是在已有代碼的基礎上面,在做一次commit,不過這個commit是對某次commit的反向操作,如果我們做錯了某次提交,我們可以再做一次反向的提交,就可以回到上一個版本的代碼了
不過這個方式我不太喜歡,退回到上一個版本還好,如果想要退回到以前的某個版本很有可能就會沖突了,而且提交的時候也會比較麻煩,這裏記錄下:
現在我要把git的代碼回退,revert操作用tortoise git(烏龜git)好像不太好用,點擊revert經常上面都沒有,這裏就記錄下用git命令怎麽做:
在項目的根目錄右擊,打開黑窗口,輸入:
git revert d83053a1a3ad6e169300b70a1f38b8b3d13d8576(最新的commit標識)
我們會發現來到了個黑窗口,我們需要在最下面輸入提交的message,隨便寫些什麽都可以
寫一些東西後,按ESC,然後同時按shift+; ,輸入wq,回車就可以了(這完全就是linux命令)
這個時候我們本地的代碼也已經改過來了,然後我們需要將代碼提交到git遠程倉庫,我們先pull,再push(不用先commit了,這其實做的就是一次commit操作,不過做的是某個反向的commit功能),然後我們遠程的代碼也改過來了
看下自己的代碼吧,寫完收工
git代碼回滾