課程目標

  • 學會 git 重置指令

課程內容

我們已經會「新增檔案 -> 編寫草稿 -> 放進滿意區」這個流程了

接著來學一下反過來的流程,也就是作家又覺得滿意區的內容不怎麼樣,想要移回草稿區,最後決定整個取消的過程


請修改 my-work-4.html 的內容,原本是

<p>我的第四個網頁檔案</p>

改成

<p>我的最後一個網頁檔案</p>

使用 git status 看一下,應該會是紅色的

可以用 git diff 查看,git 會幫你比對差異的部份給你看、方便你確認草稿變化!


確認沒問題的話,就可以用 git add my-work-4.html 放進暫存區(滿意區)

使用 git status 看一下,應該會是綠色的

這時用 git diff 查看,應該沒東西了,因為 git diff 只會檢查草稿區的內容


假如就在此時,我們反悔了,想要把它移回草稿區,該怎麼辦呢?

git reset my-work-4.html

使用 git status 看一下,應該會是紅色的

使用 git diff 看一下,應該又會看到差異內容了


如果對草稿區的內容不滿意,想要取消回去怎麼辦呢?

git checkout -- my-work-4.html

使用 git status 看一下,應該又是乾乾淨淨了!


在前一課,我們使用 git checkout 切換版本,這一課卻用 git checkout 來取消草稿內容,怎麼回事?

其實,取消草稿內容,某種角度來說,也算是切換版本的一種,對嗎?

只是這次是針對單一檔案,不是針對整個資料夾而已

語法跟觀念覺得有點不清晰,沒關係,反正跟你用文書編輯軟體時,ctrl + z 的意義也差不了多少

就先照做、用下去、享受方便記錄與管理的好處就對了!

課後作業

接續前一課的作業,你回到上一個版本看了一下,但又覺得還是拆成多個檔案比較好

請先使用 git checkout master 切回最新的版本

這次來模擬實際開發的時候,檔案放進暫存區,但又反悔了,放回草稿,然後取消的過程


繼續開發個人品牌網站,繼續加入更多資訊

請先在 background.html 加入以下資訊

<p>國小:開心國小</p>
<p>國中:快樂國中</p>

然後用 add 指令把這次更新放進暫存區

這時用 git status 查看,檔案名稱應該是綠色的


想了一下,你突然又覺得,國中國小學歷,應該沒人關心,還是別放進去好了

請使用 reset 指令把 background.html 檔案從暫存區移出

這時用 git status 查看,檔案名稱應該是紅色的


接著,使用 checkout 指令取消掉上述的修改

最後請輸入 git status,應該會看到乾乾淨淨的,沒有任何變動!

完成以上任務,你就完成這次的課程目標了!


交作業的方法:

可以把第一次、第二次、第三次 git status 的結果,分別貼到留言區


歡迎將作業成果,在下方留言,跟大家分享,讓大家給你一些回饋!

可以將每課學到的觀念、關鍵字,丟到網路上去搜尋、研究一下!

發問請在「討論專區」為主,或者分享學習筆記、寫學習心得!

貼文都會出現在個人檔案頁面,成為學習歷程、部落格紀錄!

未來面試時,分享給面試官看,會讓人知道你的積極程度!


共有 11 則留言

作業繳交

On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)

On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   background.html

no changes added to commit (use "git add" and/or "git commit -a")

On branch master
nothing to commit, working tree clean
按讚的人:

不知道可不可以理解成這樣 git reset回到上一步 git checlout回到下一步

不太對,checkout 可以在不同歷史版本間切來切去,不太像「下一步」

PS D:\Users\super\OneDrive\文件\0_Project\20230521_git> git status On branch master Changes to be committed: (use "git restore --staged ..." to unstage) modified: background.html

PS D:\Users\super\OneDrive\文件\0_Project\20230521_git> git status On branch master Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git restore ..." to discard changes in working directory) modified: background.html

PS D:\Users\super\OneDrive\文件\0_Project\20230521_git> git status On branch master Untracked files:

按讚的人:

交作業,再麻煩站長了,謝謝!

按讚的人:

作業繳交

按讚的人: