[Git] stash 和 shelve 的區別

Jetbrains IDE 內建 stash 和 shelve

結論

我不知道差在哪

  • stash
    • 會把改的檔案還原回未變更之前的檔案,同時將差異的部分暫存起來
    • 之後可以再 unstash,把檔案在從原始版本變成剛剛修改後的內容
  • shelve
    • 會把改的檔案還原回未變更之前的檔案,同時將差異的部分暫存起來
    • 之後可以再 unshelve,把檔案在從原始版本變成剛剛修改後的內容

Shelve

    1. Shelve

    2. 檔案會被還原

    3. UnShelve

    4. 檔案會被復原

    5. 這些操作都不會在版控上留下紀錄

Stash

  1. 修改 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