iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 25
2

哈嘍,大家好

今天要來學習暫存檔案~~~

我們可能會一次接收到許多不同的專案,假如今天我們在做 A 專案的時候,突然有人請你幫忙修改 B 專案的功能時,這時候該怎麼辦呢? 我 A 專案 coding 到一半又不能做 commit !
別怕,這時候靠 git stash 就沒問題喇~~

stash 存放的意思。

今天學習的指令有:

  • git stash - 暫存儲存當前目錄
  • git stash list - 瀏覽 git stash 列表
  • git stash pop - 還原暫存
  • git stash drop - 清除最新暫存
  • git stash clear - 清除全部暫存

開始之前,我們再來複習ㄅ

$ mkdir stashProject // 開新資料夾
$ cd stashProject  // 進入資料夾
$ git init  // 建立版本庫
$ touch index.html  // 開新檔案
$ git add .  // 加入索引
$ git commit -m "update index.h1"  // 提交紀錄

--這裡我有去新增 html 的 h1 標籤


#暫存檔案

我的 html 長這樣

【Git與GitHub】git stash  暫存檔案

那我們在本支(master)上 coding 的時候,突然有緊急狀況需要你去修改其他的 bug 時。
這時候我就是使用 git stash 來暫時存我們的檔案。
git stash 暫存檔案
--他會跟你說他把檔案儲存起來嚕!

再去看 html 的檔案會發現
git stash 暫存檔案
-- what the --我的東西去哪了la ヽ(#`Д´)ノ

沒事沒事,我們等等就知道惹:)


#還原暫存

想要把剛剛存進去的檔案叫回來
使用 `git stash pop` 就可以囉!
git stash pop - 還原暫存

#瀏覽 git stash 列表

使用 git stash list

git stash list - git stash list - 瀏覽 git stash 列表
--框框框起來的地方是代表我們暫存的次數會有幾筆

WIP - 意思是 Work In Progres , 工作正在進行中 。

像我剛剛自己實驗了一下,每做一次暫存, html 就會回到原本 commit 的檔案。這時再用 git stash list 來看的話,就會有三筆暫存資料。
git stash list - 瀏覽 git stash 列表

最後存的檔案會在最上面喲!也就是 stash{0};反之最開始的暫存在最下面。

#清除最新暫存

由於要區別一下不同分支的暫存,所以我開了一個分支並作暫存在最上面,等等刪掉的時候比較好區別:)
【Git與GitHub】git stash  暫存檔案

這時輸入 git stash drop
git stash drop - 清除最新暫存
-- Git 也會跟你說它刪掉的是哪一筆

再看看我們的列表,可以看到 aaa 分支上的暫存不見惹。
瀏覽 git stash 列表


#清除全部暫存

如果我全部都不要暫存檔的話,通通給它丟掉的時候,就是使用 git stash clear

$ git stash clear

--暫存的就會通通都不見嚕!


/補充說明/

git stash pop 只能回到最新的暫存,但我要的是最一開始的 R இдஇ
或是
我原本在 aaa 分支的暫存了,結果到 bbb 的分支去也做了暫存,但回到 aaa 後使用 git stash pop 後,居然是 bbb 的內容 இдஇ

這時候我們在後面加上 stash@{n} 就可以囉! n - 意指你的暫存檔案在第幾筆
git stash pop 補充說明
或是使用 apply 也可以做到一樣的效果喲!
git stash apply 補充說明

這裡要注意一點,如果你發現還原錯誤的暫存時,請記得在使用一次暫存,然後再使用 git stash pop stash@{n} 去找回暫存檔案喲!不然你會發現在你已經還原檔案的情況下,是不會讓你再還原一次 D

刪除某一個暫存也是跟上面一樣哦,後面加上 stash@{n} 就可以刪掉特定的暫存檔嚕!

再再再如果,都覺得很麻煩的話,可以先做 commit ,之後回來拆掉(reset) commit 就可以喇~


上一篇
Day24【Git與GitHub】git tag 把你貼標籤:)
下一篇
Day26【Git與GitHub】git remote 遠端數據庫
系列文
Git與Github-30天學習歷程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言