[Git] stash 和 shelve 的區別
Jetbrains IDE 內建 stash 和 shelve
結論
我不知道差在哪
stash
會把改的檔案還原回未變更之前的檔案,同時將差異的部分暫存起來
之後可以再 unstash,把檔案在從原始版本變成剛剛修改後的內容
shelve
會把改的檔案還原回未變更之前的檔案,同時將差異的部分暫存起來
之後可以再 unshelve,把檔案在從原始版本變成剛剛修改後的內容
Shelve
1. Shelve

2. 檔案會被還原

3. UnShelve

4. 檔案會被復原

5. 這些操作都不會在版控上留下紀錄
Stash
修改 appsettings.secrets.json

2. 選擇 git stash changes

3. 輸入 stash 的訊息並建立該 stash

4. appsettings.secrets.json 已被還原回未更改的內容

5. 選擇 git unstash changes

6. 選擇欲還原的 stash 並 Apply Stash

7. appsettings.secrets.json 會再變成該 stash 的內容

8. 這些操作都不會在版控上留下紀錄
參照
idea中好用的git shelve changes和stash changes-CSDN博客

PS5
Git
JetBrains
回首頁
本文章從點部落遷移至 Writerside
13 October 2025