1. 程式人生 > >git代碼回滾

git代碼回滾

而且 有時 分享 eve 目錄 錯誤 會有 9.png 烏龜

有時候我們用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代碼回滾