首頁  >  文章  >  php教程  >  Git回滾遠端版本

Git回滾遠端版本

高洛峰
高洛峰原創
2016-11-22 17:24:111419瀏覽

1.故事的開始

遠端master分支下程式碼被不小心提交了很多垃圾程式碼或專案刪掉,想要回滾到以前的某一版本並刪除commit log。怎麼辦?情境如圖:

Git回滾遠端版本

情境很簡單。老闆上傳了個文件,我把他刪掉了。有辦法,把文件再push下,但是也不想他看到圖中那comment(ps:這樣我才不會被fire)。實作上述場景的程式碼如下:

vim A.txt

git add .

git commit -a -m "add A.txt"

git push

-grm A. "我刪除了老闆的東西"

git push

————–分割線 ————–

一頭霧水的小白怎麼辦?怎麼辦?怎麼辦?

push到遠端的提交預設是不能修改的,但一定要修改不是不行:

git push -f

 

2.解決之道

2.1工作區,暫存區,本地版本庫& 遠端版本庫

No pic say 個78。 。 。

》》工作區:就是我們操作的目錄Git回滾遠端版本

》》暫存區:操作目錄的快照

》》本地版本庫:Git的精髓,人人都是中央倉庫。也就是Git分散式的好處,自然比較SVN這種集中式

》》遠端版本庫:Github這種中央倉庫,可以達到共享。

常用的操作也如圖所示,不言而喻了。

 

2.2 實戰解決

Talk is cheap,Show me the code or money~ 程式碼如下:

git log

詳解如下:

 

第1行:git log 查看提交歷史,然後找到要回滾的版本。歷史如下,

commit 84686b426c3a8a3d569ae56b6788278c10b27e5b

Author: JeffLi1993 

   我刪除了老闆的東西

commit 72bd6304c3c6e1cb7034114db1dd1b8376a6283a


Author: ddLi1993 JeffLi1993 JeffLi199583850Fate 016 +0800


   add A.txt

我們想要回滾的版本是: 72bd6304c3c6e1cb7034114db1dd1b8376a6283a

 

第2行:git resetet –soft 72bd6304c3c6e1cb703418修改退回到暫存區(不懂看漂亮的圖哦~)。 soft 和 hard參數的差別就是,hard修改記錄都沒了,soft則會保留修改記錄。

 

第3行:暫存為了安全起見。

 

第4行:git push -f

將本地master push 到遠端版本庫中, -f 強制覆蓋。

 

3. 小結

git reset 回滾到某個版本之前

git push -f 強制push覆蓋

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn