有時在 pull 過程,偶爾都會遇到 Git 發生衝突的狀況

commit your changes or stash them before you can merge.

或者,在我們開發某個新feat功能,需要先處理一些修改再返回繼續開發時,

這時,就可以透過 git stash 暫存指令將目前開發內容暫存起來

先將新增的內容 pull 下來,或等我們狀況處理完畢,再將暫存內容取回

用法如下:

將目前修改內容放入暫存

git add -A

直接加入 stash

git stash

或者可以加入註解

git stash save -u "<type>:<content , 本次暫存的內容及原因>"

//例如

git stash save -u "Feature: Env setting"

接著,就可以進行 pull

git pull

查看 STASH

查看目前 stash

git stash list

取回STASH

取回 stash 的方式有兩種

第一種是,取回並且刪除 stash

git stash pop

第二種是,取回但不刪除 stash

git stash apply

從多個 STASH 取回指定的 STASH

我們可能會同時存取多個 stash

這時可以先查詢目前 stash 的項目

git stash list

再透過指定要拿回哪個 index 的 stash

index 0 表示第一個,1表示第二個….以此類推

因此,在 stash list中,我們要拿回第一個 stash,就可以透過指定 index 0 的方式來取回

例如:

git stash pop stash@{0}

手動刪除 git stash

一次刪除所有 stash

git stash clear

刪除指定的stash,要先透過 stash list 查詢目前 stash項目,再透過指定 index 方式刪除

例如現在要刪除第一個 stash,則指定 index 0 即可

git stash drop stash@{0}