不小心將測試代碼提交到生產(chǎn)環(huán)境?別慌,教你 6 種方法秒解決!
閱讀本文大概需要 2.8 分鐘。
Git 版本管理時,往往需要撤銷某些操作。
一、撤銷提交
$?git?revert?HEAD
git revert?命令只能抵消上一個提交,如果想抵消多個提交,必須在命令行依次指定這些提交。比如,抵消前兩個提交,要像下面這樣寫。$?git?revert?[倒數(shù)第一個提交]?[倒數(shù)第二個提交]
git revert?命令還有兩個參數(shù)。--no-edit:執(zhí)行時不打開默認編輯器,直接使用 Git 自動生成的提交信息。--no-commit:只抵消暫存區(qū)和工作區(qū)的文件變化,不產(chǎn)生新的提交。
二、丟棄提交
$?git?reset?[last?good?SHA]
git reset?的原理是,讓最新提交的指針回到以前某個時點,該時點之后的提交都從歷史中消失。git reset?不改變工作區(qū)的文件(但會改變暫存區(qū)),--hard?參數(shù)可以讓工作區(qū)里面的文件也回到以前的狀態(tài)。$?git?reset?--hard?[last?good?SHA]
git reset?命令之后,如果想找回那些丟棄掉的提交,可以使用git reflog?命令,具體做法參考這里。不過,這種做法有時效性,時間長了可能找不回來。三、替換上一次提交
git commit?命令的?--amend??參數(shù),可以修改上一次的提交信息。$?git?commit?--amend?-m?"Fixes?bug?#42"
--amend?不僅可以修改提交信息,還可以整個把上一次提交替換掉。四、撤銷工作區(qū)的文件修改
git checkout?命令找回本次修改之前的文件。$?git?checkout?--?[filename]
注意,工作區(qū)的文件變化一旦被撤銷,就無法找回了。
五、從暫存區(qū)撤銷文件
$?git?rm?--cached?[filename]
六、撤銷當前分支的變化
#?新建一個?feature?分支,指向當前最新的提交
#?注意,這時依然停留在當前分支
$?git?branch?feature
#?切換到這幾次提交之前的狀態(tài)
$?git?reset?--hard?[當前分支此前的最后一次提交]
#?切換到?feature?分支
$?git?checkout?feature
本文轉(zhuǎn)載自:「阮一峰的網(wǎng)絡日志」,原文:https://url.cn/5NLK2pC,版權歸原作者所有。
推薦閱讀:
SpringBoot 定時任務動態(tài)管理通用解決方案
內(nèi)容包含Java基礎、JavaWeb、MySQL性能優(yōu)化、JVM、鎖、百萬并發(fā)、消息隊列、高性能緩存、反射、Spring全家桶原理、微服務、Zookeeper、數(shù)據(jù)結構、限流熔斷降級......等技術棧!
?戳閱讀原文領取!? ? ? ? ? ? ? ??? ??? ? ? ? ? ? ? ? ? ?朕已閱?
評論
圖片
表情

