Codespace 生命週期
GitHub Codespaces 是可設定的,可讓您為專案建立自訂的開發環境。 藉由為您的專案設定自訂開發環境,您可以為專案的所有使用者設定可重複的 Codespace 設定。
Codespace 的生命週期會在您建立 Codespace 時開始,並在刪除時結束。 您可以中斷連線並重新連線到作用中的 Codespace,而不會影響其執行中的流程。 您可以停止並重新啟動 Codespace,而不會遺失您對專案所做的變更。
建立 Codespace
您可以在 GitHub.com、Visual Studio Code 或 GitHub CLI 上建立 Codespace。 有四個方法可建立新的 Codespace:
- 從 GitHub 範本或任何 GitHub.com 上的範本存放庫來開始新專案。
- 從存放庫中的分支進行新功能工作。
- 從開啟的提取要求探索進行中工作。
- 從存放庫歷程記錄中的認可,在特定時間點調查 Bug。
您可以暫時使用 Codespace 來測試程式碼,也可以返回相同的 Codespace 來處理長時間執行的功能工作。
您可以為每個存放庫,甚至是每個分支建立一個以上的 Codespace。 不過,您可以同時建立和執行的 Codespace 數目有一些限制。 當您達到 Codespaces 的數目上限並嘗試建立另一個空間時,就會顯示訊息。 訊息會告訴您,必須先移除/刪除現有的 Codespace,才能建立新的 Codespace。
您可以在每次在 GitHub Codespaces 中開發,或保留長時間執行的 Codespace 作為功能時,建立新的 Codespace。 如果開始新的專案,請從範本建立 Codespace,並在稍後將其發佈至 GitHub 上的存放庫。
在每次處理專案時建立新的 Codespace 時,您應該定期推送變更,以確保任何新的認可都位於 GitHub 上。 針對新專案使用長時間執行的 Codespace 時,每次您開始在 Codespace 中工作時,請從存放庫的預設分支提取,讓您的環境取得最新的認可。 工作流程類似於在本機電腦上使用專案。
存放庫管理員可以為存放庫啟用 GitHub Codespaces 預建,以加速建立 Codespace。
如需深入逐步解說和逐步指引,請參閱標題為初學者指南的資源,以瞭解如何使用 GitHub Codespaces 撰寫程式碼,並在本課程模組結尾的 Codespace 中開發程式碼。
Codespace 建立流程
您建立 GitHub Codespace 時,會發生四個流程:
- 虛擬機器和儲存體會指派給您的 Codespace。
- 已建立容器。
- 已建立 Codespace 的連線。
- 建立後設定。
在 Codespace 中儲存變更
當您透過 Web 連線到 Codespace 時,會自動啟用自動儲存,以在經過特定時間之後儲存變更。 當您透過桌面上執行的 Visual Studio Code 連線到 Codespace 時,您必須啟用自動儲存。
您的工作會儲存至雲端中的虛擬機器。 您可以關閉並停止 Codespace,並在稍後返回儲存的工作。 如果您有未儲存的變更,則會在結束之前收到儲存這些變更的提示。 不過,如果您的 Codespace 已刪除,則您的工作就會遺失。 若要儲存您的工作,您必須認可變更,並將其推送至遠端存放庫,或者若您從範本建立 Codespace,請將您的工作發佈至新的存放庫。
開啟現有的 Codespace
您可以在 GitHub.com、JetBrains IDE、Visual Studio Code 或使用 GitHub CLI,重新開啟任何作用中或已停止的 Codespace。
若要繼續現有的 Codespace,您可以移至 Codespace 所在的存放庫,選取 ,
索引鍵,然後選取 [繼續此 codespace]。 或者,您可以在瀏覽器中開啟 https://github.com/codespaces、選取存放庫,然後選取現有的 Codespace。
Codespace 的逾時
如果 Codespace 處於非使用中狀態,或如果您結束 Codespace 而不明確停止,應用程式會在一段閒置後逾時,並停止執行。 預設逾時是在閒置 30 分鐘之後。 當 Codespace 逾時的時候,您的資料會從上次儲存變更時保留下來。
使用 GitHub Codespaces 時的網際網路連線
Codespace 需要網際網路連線。 如果在 Codespace 中工作時,與網際網路的連線遺失,您將無法存取您的 Codespace。 不過,會儲存任何未認可的變更。 當您重新建立網際網路連線時,可以存取與連線遺失時所留下相同狀態的 Codespace。
如果您有不穩定的網際網路連線,您應該經常認可並推送變更。
關閉或停止 Codespace
若您結束 Codespace 而不執行 stop 命令,或讓 Codespace 保持不互動,則 Codespace 及其執行中的流程會在閒置逾時期間繼續執行。 預設閒置逾時期間為 30 分鐘。 您可以為您所建立的 Codespace 定義個人逾時設定,但組織逾時原則可能會覆寫此設定。
只有執行中的 Codespace 會產生 CPU 費用。 已停止的 Codespace 只會產生儲存體成本。
您可以停止並重新啟動 Codespace 以套用變更。 例如,如果您變更用於 Codespace 的機器類型,您必須停止並重新啟動,變更才會生效。 當您關閉或停止 Codespace 時,會保留所有未認可的變更,直到您再次連線到 Codespace 為止。
您也可以停止 Codespace,並選擇在發生錯誤或非預期的情況下將其重新啟動或刪除。
重建 Codespace
您可以重建 Codespace,以將變更實作到開發容器設定。 針對大部分用途,您可以建立新的 Codespace 作為重建 Codespace 的替代方案。 當您重建 Codespace 時,快取中的映像會加速重建流程。 您也可以執行完整重建,以清除快取,並使用全新的映像重建容器。
當您在 Codespace 中重建容器時,系統會清除您在 /workspaces
目錄外部所做的變更。 您在 /workspaces
目錄內所做的變更,包括您建立 Codespace 來源的存放庫或範本的複製,都會透過重建來保留。
刪除 Codespace
您可以為特定工作建立 Codespace。 將變更推送至遠端分支之後,您就可以安全地刪除該 Codespace。
如果您嘗試刪除具有未推送 Git 認可的 Codespace,編輯器會通知您有尚未推送至遠端分支的變更。 您可以推送任何所需的變更,然後刪除您的 Codespace。 您也可以繼續刪除 Codespace 和任何未認可的變更,或將程式碼匯出至新的分支,而不需建立新的 Codespace。
系統會自動刪除在指定時間內,維持非使用中的已停止 Codespace。 非使用中的 Codespaces 會在 30 天後刪除,但您可以自訂 Codespace 保留間隔。