1.故事的開始
遠端master分支下程式碼被不小心提交了很多垃圾程式碼或專案刪掉,想要回滾到以前的某一版本並刪除commit log。怎麼辦?情境如圖:
情境很簡單。老闆上傳了個文件,我把他刪掉了。有辦法,把文件再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分散式的好處,自然比較SVN這種集中式》》遠端版本庫:Github這種中央倉庫,可以達到共享。 常用的操作也如圖所示,不言而喻了。 2.2 實戰解決Talk is cheap,Show me the code or money~ 程式碼如下:git log詳解如下:
第1行:git log 查看提交歷史,然後找到要回滾的版本。歷史如下,
我刪除了老闆的東西
commit 72bd6304c3c6e1cb7034114db1dd1b8376a6283a
Author: ddLi1993
add A.txt
我們想要回滾的版本是: 72bd6304c3c6e1cb7034114db1dd1b8376a6283a
第2行:git resetet –soft 72bd6304c3c6e1cb703418修改退回到暫存區(不懂看漂亮的圖哦~)。 soft 和 hard參數的差別就是,hard修改記錄都沒了,soft則會保留修改記錄。
git push -f 強制push覆蓋