Git的撤銷操作 git reset HEAD --

在項目中我們也經常會使用到撤銷操作 使用這一節我們就講一講Git的撤銷操作

撤銷操作主要有如下幾種

git commit   --amend        撤銷上一次提交  並講暫存區文件重新提交
git checkout -- <file>     拉取暫存區文件 並將其替換成工作區文件
git reset HEAD  -- <file>  拉取最近一次提交到版本庫的文件到暫存區  改操作不影響工作區
  • git reset HEAD -- <file>

該操作 可以 拉取最近一次提交到版本庫的文件到暫存區 並且該操作不影響工作區

簡單的來說 就是可以幫我們從版本庫中 拉取文件到 暫存區 當我們把工作區的某個文件弄亂了 我們就可以使用該命令 把版本庫中的那個文件拉到暫存區 然後在拉回工作區

舉個例子 我們的項目目錄 和Git版本庫提交日誌 如下圖

這裏寫圖片描述

這裏寫圖片描述

我們現在在 version 5.0版本 5.0版本readme.md 裏面有 hello world ! 這個字符串 而我們需要 readme.md 裏面是空白的 我們只記得 version 1.0 裏面readme.md 是空白的 所以我們現在需要把 version 1.0 裏面的 readme.md 拉到我們的工作區

這時我們就不得不分析一下 git reset HEAD -- <file> 這個命令的各個參數了

filename 一看就知道 是我們要拉取的文件名

HEAD 可以理解爲一個遊標 一直指向當前我們所在版本庫的地址 就是我們當前所在版本庫的頭指針

當然 我們也可以不使用HEAD 可以直接使用版本庫的地址 版本庫地址 可以用 git log 命令打印出來

如下圖 version 1.0 的版本庫地址爲 f0a1684

這裏寫圖片描述

我們執行 git reset f0a1684 -- readme.md 結果如下圖

這裏寫圖片描述

使用 git status 參看倉庫狀態 如下圖

這裏寫圖片描述

我們發現 現在暫存區裏的文件 和 工作區 當前版本庫的 都不一樣 這說明我們已經成功的把 version 1.0 中 空的 readme.md 拉取到了 暫存區 因爲工作去和當前版本庫裏的 readme.md 裏面都應該有 hello world !

我們在使用 git checkout -- <file> 命令來把 暫存區文件拉到工作區

這裏寫圖片描述

這裏寫圖片描述

工作區 readme.md 現在變成空了 拉去成功 說明我們的 git reset HEAD -- <file> 命令執行成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章