我們很常在開發的過程當中,切換工作,這時很有可能會切換分支,這時候可以利用 git 的 Stash 或是 Rider 的 Shelve 來暫停目前的開發,下次切換回來的時候,就可以繼續尚未完成的開發工作。
TFVC 也有提供擱置(Shelve),是將檔案放到遠端伺服器,Rider 則是放在本地端。
開發環境
- Widows 10 Pro
- Rider 2021.2.1
暫停工作的策略
- 先 commit,下次接續工作時,使用 reset commit
- 使用 git stash,下次接續工作時,使用 unstash
- 使用 rider schelve,下次接續工作時,使用 unschelve
Schelve 是 Jetbrains Rider IDE 的功能,跟 Stash 一樣都可以保留尚未 Commit 的程式碼,Stash 後就會保留整個方案未 Commit 的所有檔案,若是要暫存單檔案,可能需要 git cli,目前在 Jetbrains Rider IDE 沒有看到這樣的功能。
Uncommited Changes 選單裡面可以看到
- Schelve Changes:擱置檔案
- Show Shelf:檢視擱置
- Stash Changes:暫存檔案
- Unstash Changes:還原暫存檔案
Jetbrains Shelve
當要切換工作前,按下 Schelve Changes,這個畫面長的就跟 Jetbrains Commit 相似,選擇要擱置的檔案,還有,Commit 前有一些工作可以做,比如:驗證 Commit Message、排版等等…等等…
擱置後就把挑選的放進擱置集區,專案也被復原 (Rollback) 到還沒有編輯之前。
可以看到擱置內容被放到 git 視窗的 Shelf
要繼續上一次的工作就按下 Unshelve
Git Stash
每一套 Git GUI 的 Stash 的表示方式都不一樣,git fork 可以看出哪裡有 Stash,位於哪一個 Branch, Stash 裡面有哪一些檔案
Unstash Changes
這時候就能檢視所有 Stash,按下 View 才能看到所有的檔案
檢視 Stash 的檔案內容
跟 git fork 相較之下,遜色些許
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET