iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 12
2

哈嘍,大家好

在開始今天內容之前,
我們先小小複習一下前兩天的內容 :)
mkdir 一個 project ➜ cd 進 project ➜ 建立數據庫 git init ➜ 之後再 touch 一個檔案 ➜ git add . ➜ git commit -m ""

今天內容有兩個指令用法:

  • 取消索引:git reset HEAD
  • 還原檔案:git checkout

#取消索引

今天我們新增了兩個檔案並且加入索引(暫存區),才發現加錯檔案惹,要如何取消索引呢?
git add . 加入索引
--可以看到上圖是已經新增兩個檔案並加入索引的狀態。

取消索引的話,輸入 git reset HEAD
git reset HEAD - 取消索引
--就可以看到這兩個檔案恢復成不被追蹤的狀態惹。(會回到原本的工作目錄上)

如果是要取消 一個 檔案的話,輸入 git reset HEAD 檔案名稱.副檔名
git reset HEAD - 取消一個索引
--可以看到原本被追蹤的兩個狀態,只剩一個。


#還原檔案

還記得我們剛剛有新增一個 index.html 的檔案嗎?今天我們如果在編輯的時候不小心把他玩壞了,完全不曉得自己剛寫了什麼、改了哪一行怎麼辦呢?(我好常玩壞我的 JS இдஇ)
【Git與GitHub】工作狀態還原
--這是我玩壞後的html,原本什麼都沒有喲!

輸入 git status 查詢狀態,會發現:
git status - 查詢狀態
-- Git 很貼心的偵測到你修改了 index.html。

那麼我該如何還原檔案呢

別擔心,這時候輸入 git checkout 就可以回到最原始 commit 的資料惹喔!
git checkout - 還原檔案
--記得後面要輸入檔名喲!

再回去看我的檔案
【Git與GitHub】工作狀態還原
就回到原本的版本嚕! 如果要使用 command+z 回到最初也是可以辣......


好,狀況劇來惹!
如果,我今天所編輯的內容或是已經加入索引的工作目錄全部都要砍掉重來怎麼辦呢?
使用 git reset --hard 就可以還原工作目錄與索引,會跟最後一次 commit 的紀錄保持一樣。

請先全部加入索引 git add . 再輸入 git reset --hard
全部加入索引 git add . 再輸入 git reset --hard
--就可以看到他回到最初的 commit 的樣子嚕!
可以使用 git log 查詢記錄
git log - 查詢記錄
--沒錯,他回到最一開始 commit 的版本惹!

這邊給大家看看如果沒有先將這些檔案加入索引,就算使用 git reset --hard ,新增的檔案還是會被 Git 偵測為 未被追蹤的狀態 喲!但如果全部加入索引,再使用一次指令,得到的結果就是全部都回到最最原始的版本紀錄。

就算使用 git reset --hard ,新增的檔案還是會被Git偵測為未被追蹤的狀態

知道為什麼要先加入索引了吧(✪ω✪)


明天會針對今天這篇做補充以及延伸說明喲!
今天就先到這喇ᕙ༼ຈل͜ຈ༽ᕗ

最後,
祝大家中秋節快熱!!!!!!


上一篇
Day11【Git與GitHub】.gitignore 忽略檔案
下一篇
Day13【Git與GitHub】工作狀態還原(補充)
系列文
Git與Github-30天學習歷程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言