甚麼是 Codespaces?
GitHub Codespaces 是在網路雲端的開發環境。
- 每個 codespace 的生命週期從創建 codespace (New codespace) 時開始,到刪除 codespace 時結束。
- 我們可以隨時中斷連接、而後重新連接到 codespace ,或是停止並重新啟動 codespace ,都不會影響原先運行和所做的更改。
- 經由 github.dev 提供 網頁版VS Code 來編輯程式碼,並設定為 「延遲自動儲存」 (auto-save: save changes after a delay)。
如何新建 codespace?
- 我們可以從 GitHub 網頁、GitHub 命令列 (CLI) 指令、或 VS Code 去建立一個 codespace。
- 也可以從 GitHub Codespaces 選擇範本,去建立一個 codespace, 並稍後發佈到 GitHub 的儲存庫。
- 如果想從 VS Code 建立一個 codespace,就需要安裝 GitHub Codespaces 延伸模組等。
- 但是如果是新手,我還是建議從 GitHub 網頁,選擇儲存庫 去建立一個 codespace,感覺比較直接順手。稍後我會舉個例子來說明整個流程。
停止 codespace 運行
- 我們可以隨時停止某一個 codespace 運行,這時會清除所有運行歷史記錄。
而下次啟動這 codespace 時,它會記住上次有儲存的變動。
- 如果沒有明確停止 codespace ,它將繼續運行,直到因閒置超過30分鐘而自動停止。
- 關閉 codespace 不會停止 codespace。
如何停止 codespace?
在 GitHub Codespaces 網頁,左側會列出在 GitHub 帳號下有 codespace 的儲存庫。
點選某一儲存庫,如果這 codespace 有在運行,在右側會顯示綠色的小圓點和 “Active”。
這時點擊最右邊的 ...
選擇「Stop codespace」。
注意事項:
- 長期不使用的 codespace 將被自動刪除。最多可以保留30天不使用,每次連接到這codespace 時,保留期都會重置。
不過,GitHub會在刪除前使用電子郵件通知。而且當長期不使用的 codespace 接近其保留期結束時,會在 GitHub 上的 codespace 列表中顯示。
Codespaces 費用和限制
-
只有運行的 codespace 才會產生CPU 費用。停止的 codespace 僅產生存儲成本
- 以2-core選項,每月有60小時免費使用Codesapces 時間,如用4-core選項,則每月有30小時免費使用時間。我認為選擇免費的「GitHub Free」就足夠在學校利用平板上網使用了。
- 如果你想瞭解使用Codesapces費用計算方式,可以由文章後面的傳送門查找。
-
GitHub有說可以創建的codespace 數量和可以同時運行的codespace 數量受到限制,但沒有提供詳細的計算方式。如果有閒置不用 codespace,建議就刪除它。
-
如何查看個人帳戶的GitHub Codespaces 使用情況和費用?
- 在任何GitHub網頁上,點擊右上角的個人圖片,然後選擇 ”Settings”, 再點擊 “Billing and plans” 並選擇下面的 ”Plans and usage”
- 也可以點擊 文章後面的傳送門 (GitHub Billing 計費),查看個人帳戶的費用,和GitHub 相關服務和Codespaces 使用情況。
codespace 簡單的使用範例
- 在 VS Code 左側檔案總管打開一個資料夾。如果裡面沒有 Python 相關程式碼 (如
.py
或 .ipynb
),就先新建立一個 .py
程式碼。
- 點選最左側的工具欄的 Git 選項,按下「發佈至GitHub」(Publish to GitHub) 按鍵 去建立 GitHub 儲存庫。
- 然後在 GitHub 網頁上,點選在左側的儲存庫。然後在這儲存庫的頁面左邊,點擊綠色 「Code」按鍵,並選擇 Codespaces 分頁。
因為這時候,還沒產生 codespace,所以就點擊綠色 「Create codespace」按鍵,去建立一個 codespace。
- 然後GitHub Codespaces自動在 github.dev 建立一個網頁版VS Code 開發環境 (包括安裝好 Python 套件)
- 並同時會建議去安裝 Python (Microsoft) 的延伸模組。點選安裝後,就會在這 codespace 開發環境安裝。
- 這時網頁版VS Code 就會新增 “Run” 三角形按鍵,我們就可以開始編輯和執行 Python 程式碼。
GitHub Codespaces 的傳送門
🌐 GitHub Codespaces
🌐 GitHub Billing 計費
🌐 關於GitHub Codespaces 的計費- GitHub
🌐 創建codespace - GitHub
🌐 停止和啟動codespace - GitHub