首頁技術文章正文

Java培訓:git實戰(zhàn)技巧-本地剛做出的修改、暫存和提交如何進行撤銷

更新時間:2022-06-22 來源:黑馬程序員 瀏覽量:

  1、解決思路

  工作區(qū)和暫存區(qū)內容的撤銷,直接按照對應命令或者IDEA界面完成操作就行。

  對于已提交的撤銷回滾建議如下:

  1. 代碼如果僅僅是回撤到指定版本,該版本之上的更新是不需要的,選擇Hard模式。

  2. 代碼回撤到指定版本時,需要保存該版本之上的更新,可以選擇Soft模式。

  其他根據自己的需要選擇即可。

  2、動手實踐

  2.1、基于IDEA解決

  1)撤銷工作區(qū)內容

  變更內容可以在Git工具窗口中直接撤銷,如下圖:

1655892128225_1.jpg

  或者右鍵的文件,選擇Git,然后選擇Rollback也可以完成撤銷。

1655892141389_2.jpg

  2)撤銷暫存區(qū)文件

  IDEA中做代碼更新后,可以不用額外的做暫存,直接提交就行了。所以可以不用考慮暫存撤銷的問題。

  3)已提交的撤銷

  IDEA中要撤銷版本回到上一版本,或者回退到指定版本可以如下操作:

  1. 打開Git工具窗口,點擊Log 查看版本提交記錄

  

1655892247499_3.jpg

      2. 然后右鍵你需要回退的版本,選擇Rest Current Branch to Here

  

1655892271003_4.jpg

     
      3. 此時會彈出一個菜單,供我們選擇,選擇需要的操作模式,然后點擊Reset即可

  

1655892316775_5.jpg

     
       撤銷模式說明:

  四種模式在撤銷回滾時,都會讓HEAD指針改變指向到指定版本。

  1. Soft:回滾代碼到指定版本時,工作區(qū)文件不會做改變,相較于指定版本多出的更新將會被暫存等待提交

  2. Mixed:回滾代碼到指定版本時,工作區(qū)文件不會有改動,但是暫存會被清空

  3. Hard:回滾到指定版本時,工作區(qū)內容會回滾到指定版本,暫存也會被清空(慎重,未提交的代碼有丟失風險)

  4. Keep:回滾到指定版本時,工作區(qū)內容會回滾到指定版本,暫存區(qū)未提交內容會保存

  2.2、基于Git命令解決

  1)工作區(qū)內容撤銷

  命令:`git checkout -- fileName`

  例如,對readme.txt 進行內容修改,保存文件。此時在Git Bash 中執(zhí)行 `git status`看效果。

1655892389876_6.jpg

  上面有提示我們如何進行撤銷,現(xiàn)在我們撤銷readme.txt的修改:

1655892401918_7.jpg

1655892429399_8.jpg

  2)已暫存撤銷

  命令:

  `git reset HEAD file` 移除暫存區(qū)回到工作區(qū),內容在工作區(qū)中還是存在的

  例如,對readme.txt 進行內容修改并已經暫存?,F(xiàn)在需要撤銷

1655892465295_9.jpg

  此時在Git Bash 中執(zhí)行 `git status`看效果。

1655892477003_10.jpg

  上面有提示我們如何進行撤銷暫存,現(xiàn)在我們撤銷readme.txt的暫存:

1655892488750_11.jpg

  3)已提交撤銷

  當前知識點能夠解決你在以后遇到的如下問題,

  1. 想要查看歷史提交版本信息

  2. 出于某些原因,想要將代碼回撤重置到指定版本

  我們可以使用 git reset 命令來進行版本回退,而且可以指定退回到之前某一次提交的版本

  命令:

  ```

  git reset [--soft | --mixed | --hard --keep] [HEAD|版本號]

  ```

  下面要完成以下操作:

  1)重置到上一個版本(當前提交撤銷)

  命令:`git reset --hard HEAD^`

  HEAD參數說明:

  - `git reset --hard HEAD` 撤銷暫存內容

  - `git reset --hard HEAD^` 撤回到上一個版本

  - `git reset --hard HEAD^^` 撤回到上上個版本

  - 以此類推

  如果要回退到指定版本,建議用下面的方式。

  2)重置指定版本

  命令:

  1. 查看版本號命令

  `git reflog`

  2. 按照版本號進行重置

  `git reset --hard 版本編號`

分享到:
在線咨詢 我要報名
和我們在線交談!