Android Studio如何回滾已經(jīng)commit(提及到本地)的代碼

轉自:Android Studio如何回滾已經(jīng)commit的代碼

今天,在修改代碼的時候,因為不注意,把不需修改分支的代碼修改并提交的本地了,在將要提交到遠程倉庫這千鈞一發(fā)之際發(fā)現(xiàn)分支不對,于是就想把已經(jīng)commit(提及到本地)的代碼回滾到本地改動。有問題,問“度娘”嘛,于是轉了上述文章,正文:

快速解決:

1.首先,鼠標右鍵項目-->Git-->Reponsitory-->Reset HEAD。
2.執(zhí)行下面的操作,Reset Type選擇 Soft 表示保存所有的提交操作,^表示退回到上一次提交。

圖1

詳細解決:

對于commit(不是 push)的代碼如何回滾,這塊對于剛轉到 git 的開發(fā)者還是比較陌生的。今天我來說下這塊的內容:
按照慣例,先上圖,下圖是還沒有 commit 任何代碼的 push 界面,這個時候是沒有 commit 任何內容的:


然后我修改了 string.xml 的內容,并且執(zhí)行了commit 操作:


接下來就要說如何進行revert commit 了,通過選中工程,點擊右鍵,在彈出的列表中選擇 Git-->Repository-->Reset HEAD...,之后出現(xiàn)如下圖所示:


這邊對上圖進行分析:

  • Git Root:選擇你要revert 的目錄。
  • Current Branch:你當前在哪個branch

Reset Type:

  • Soft:選擇這個模式意思是僅僅撤銷 commit 而已,不影響你本地的任何文件,也不影響(index )緩存區(qū)的任何文 件。
  • Hard:不僅撤銷 commit 的內容,還將本地的文件指向你 commit 前的版本,同時index也會指向 commit 前的版本。
  • Mixed:這個模式從我個人角度來看其實還是有點模糊的。從我的角度理解就是只是回滾 index,其余的都不變。

  • To Commit:填寫 HEAD 后面加個 “~1”

但是這邊跟大家說下,如果你把 `HEAD` 后面加個 `“~1” `,這里的數(shù)字代表的是次數(shù),
比如你` commit` 了三次, 你寫 `1` ,就是回滾最后一次提交的,
如果是 `2` ,就是后兩次提交的都回滾。這時候你會發(fā)現(xiàn)它的功能和 `soft `這個模式一樣了。

官方說法:Resets the index but not the working tree 
(i.e., the changed files are preserved but not marked for  commit) 
and reports what has not been updated. This is the default action.

  • Validate:這個選項是看當前會影響到的文件有哪些,具體影響是什么。
    [圖片上傳中...(image.png-27c455-1547462776066-0)]

我這邊執(zhí)行下 soft 模式的,執(zhí)行完成后,剛 commit 的記錄已經(jīng)沒了,并且曾經(jīng) commit 的文件,已經(jīng)回到本地改動。

命令行解決:
git reset [--soft | --mixed [-N] | --hard] HEAD~X   X:代表次數(shù)
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Git 基礎 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來。這樣一來,任何一處協(xié)同...
    __silhouette閱讀 16,197評論 5 147
  • Git 命令行學習筆記 Git 基礎 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來...
    sunnyghx閱讀 4,152評論 0 11
  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,853評論 1 26
  • 傍晚我看到一只只鳥兒在天際劃過。 有的鳥體型很大,翅膀呈飛鏢形,通體白色,白的沒有一絲雜亂的顏色。他們只是偶爾扇動...
    roxann閱讀 189評論 1 0
  • 清晨,媽媽煮好了粥,乘到了碗里,煎了三個荷包蛋放在三個盤子上,擺在餐桌上,等做完這些事情后,便開始叫我起床,睡眼懵...
    楊曦月閱讀 441評論 0 3

友情鏈接更多精彩內容