摘要: 原創出處:www.bysocket.com 泥瓦匠BYSocket 但願轉載,保留摘要,謝謝!git
「房子是租的 但生活不是」github
遠程master分支下代碼被不當心提交了不少垃圾代碼或項目刪掉,想要回滾到之前的某一版本並刪除commit log。怎麼辦?情景如圖:vim
情景很簡單。老闆上傳了個文件,我把他刪掉了。有一種辦法,把文件再push下,可是也不想他看到圖中那comment(ps:這樣我纔不會被fire)。實現上面場景的代碼以下:安全
vim A.txt
socket
git add .
分佈式
git commit -a -m "add A.txt"
spa
git push
.net
rm A.txt
3d
git commit -a -m "我刪除了老闆的東西"
code
git push
————–分割線 ————–
一頭霧水的小白怎麼辦?怎麼辦?怎麼辦?
push到遠程的提交默認是不能修改的,可是必定要修改不是不行:
git push -f
No pic say 個 78。。。
》》工做區:就是咱們操做的目錄
》》暫存區:操做目錄的快照
》》本地版本庫:Git的精髓,人人都是中央倉庫。也就是Git分佈式的好處,天然對比SVN這種集中式
》》遠程版本庫:Github這種中央倉庫,能夠達到共享。
經常使用的操做也如圖所示,不言而喻了。
Talk is cheap,Show me the code or money~ 代碼以下:
git log
git reset --soft ${commit-id}
git stash
git push -f
詳解以下:
第1行:git log 查看提交歷史,而後找到要回滾的版本。歷史以下,
commit 84686b426c3a8a3d569ae56b6788278c10b27e5b
Author: JeffLi1993 <qiangqiangli1993@gmail .com>
Date: Fri Apr 8 19:11:32 2016 +0800
我刪除了老闆的東西
commit 72bd6304c3c6e1cb7034114db1dd1b8376a6283a
Author: JeffLi1993 <qiangqiangli1993@gmail .com>
Date: Fri Apr 8 19:05:23 2016 +0800
add A.txt
咱們想要回滾到的版本就是:72bd6304c3c6e1cb7034114db1dd1b8376a6283a
第2行:git reset –soft 72bd6304c3c6e1cb7034114db1dd1b8376a6283a
撤銷到某個版本以前,以前的修改退回到暫存區(不懂看漂亮的圖哦~)。soft 和 hard參數的區別就是,hard修改記錄都沒了,soft則會保留修改記錄。
第3行:暫存爲了安全起見。
第4行:git push -f
將本地master push 到遠程版本庫中, -f 強制覆蓋。
git reset 回滾到某個版本以前
git push -f 強制push覆蓋
歡迎點擊個人博客及GitHub — 博客提供RSS訂閱哦!
———- http://www.bysocket.com/ ————- https://github.com/JeffLi1993 ———-
微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter :BYSocket