Note
В этой статье описываются этапы жизни пространства кода, от создания до удаления. Если вы прочитали [статью AUTOTITLE и хотите начать использовать GitHub Codespaces для собственной работы, см. статьи в разделе Краткое руководство по GitHub Codespaces](/codespaces/developing-in-a-codespace).
Сведения о жизненном цикле пространства кода
Жизненный цикл пространства кода начинается при его создании и заканчивается при его удалении. Вы можете отключиться и переподключиться к активному пространству кода, не затрагивая выполняемые процессы. Вы можете остановить и перезапустить пространство кода без потери изменений, внесенных в проект.
Создание codespace
Когда вы собираетесь работать над проектом, вы можете создать новое пространство кода или открыть существующее. Может потребоваться создать новое пространство кода из ветви репозитория при каждом разработке в GitHub Codespaces или сохранить длительное пространство кода для функции. Если вы запускаете новый проект, вам может потребоваться создать пространство кода из шаблона и опубликовать его в репозитории на GitHub Enterprise Cloud позже. Дополнительные сведения см. в разделе [AUTOTITLE и Создание пространства кода для репозитория](/codespaces/developing-in-a-codespace/creating-a-codespace-from-a-template).
Количество создаваемых сред codespace ограничено, как и количество одновременно выполняемых сред codespace. Эти ограничения зависят от ряда факторов. Если вы достигнете максимального количества сред codespace и попытаетесь создать еще одну среду, появится сообщение о том, что необходимо удалить существующую среду codespace, прежде чем создать новую. Аналогичным образом, если вы достигнете максимального количества активных сред codespace и попытаетесь запустить еще одну среду, вам будет предложено остановить одну из активных сред codespace.
Если вы решили создавать новое пространство кода каждый раз при работе над проектом, следует регулярно отправлять изменения, чтобы все новые фиксации были включены в GitHub. Если вы решили использовать для своего проекта долгосрочное пространство кода, то должны выполнять вытягивание из ветви по умолчанию репозитория каждый раз, когда начинаете работать в пространстве кода, чтобы в вашей среде присутствовали последние фиксации. Этот рабочий процесс очень похож на работу с проектом на локальном компьютере.
Чтобы ускорить создание пространства кода, администраторы репозитория могут включить предварительные сборки GitHub Codespaces для репозитория. Дополнительные сведения см. в разделе Сведения о предварительных сборках в GitHub Codespaces.
Сохранение изменений в пространстве кода
При подключении к пространству кода через Интернет для веб редактора автоматически включается автосохранение и настраивается сохранение изменений после задержки. При подключении к пространству кода через Visual Studio Code, работающий на вашем компьютере, необходимо самостоятельно включить автосохранение. Дополнительные сведения см. в разделе Сохранение и автосохранение документации по Visual Studio Code.
Ваша работа будет сохранена на виртуальной машине в облаке. Вы можете закрыть и остановить пространство кода и вернуться к сохраненной работе позже. Если у вас есть несохраненные изменения, перед выходом редактор предложит сохранить их. Тем не менее, если пространство кода удаляется, ваша работа также будет удалена. Чтобы сохранить работу, необходимо зафиксировать изменения и отправить их в удаленный репозиторий или опубликовать работу в новом удаленный репозиторий, если вы создали пространство кода из шаблона. Дополнительные сведения см. в разделе Использование системы управления версиями в codespace.
Время ожидания для GitHub Codespaces
Если вы оставите свое пространство кода работающим без взаимодействия или если выйдете из него, не остановив его явно, после некоторого периода бездействия время ожидания истечет, и пространство кода остановит работу. По умолчанию время ожидания пространства кода истекает через 30 минут бездействия, но вы можете настроить другое время ожидания для вновь создаваемых пространств кода. Дополнительные сведения о настройке периода ожидания по умолчанию для пространств кода см. в разделе Настройка периода ожидания для GitHub Codespaces. Дополнительные сведения об остановке пространства кода см. в разделе "Остановка пространства кода".
При истечении времени ожидания пространства кода данные сохраняются с момента последнего сохранения изменений. Дополнительные сведения см. в разделе "Сохранение изменений в пространстве кода".
Перестроение пространства кода
Вы можете перестроить пространство кода для реализации изменений, внесенных в конфигурацию контейнера разработки. В большинстве случаев вместо перестроения пространства кода можно просто создать новое пространство кода. По умолчанию при перестроении пространства кода GitHub Codespaces повторно будет использовать образы из кэша для ускорения процесса перестроения. Кроме того, можно выполнить полную перестройку, которая очищает кэш и перестраивает контейнер с помощью свежих образов.
Note
При перестроении контейнера в пространстве кода изменения, внесенные за пределами /workspaces
каталога, очищаются. Изменения, внесенные в /workspaces
каталог, включая клон репозитория или шаблона, из которого вы создали пространство кода, сохраняются при перестроении. Дополнительные сведения см. в разделе «Подробные сведения о GitHub Codespaces».
Дополнительные сведения см. в разделе [AUTOTITLE и Основные сведения о контейнерах разработки](/codespaces/developing-in-a-codespace/rebuilding-the-container-in-a-codespace).
Остановка пространства кода
Вы можете остановить пространство кода в любой момент. При остановке пространства кода все выполняемые процессы будут остановлены. Все сохраненные изменения в пространстве кода по-прежнему будут доступны при следующем запуске. Журнал терминала сохраняется, но видимое содержимое окна терминала не сохраняется между сеансами пространства кода.
Если не остановить пространство кода явным образом, оно будет продолжать работать до истечения времени ожидания в результате бездействия. Закрытие пространства кода не останавливает пространство кода. Например, если вы используете пространство кода в веб-клиенте VS Code и закрываете вкладку браузера, пространство кода остается запущенным на удаленном компьютере. Сведения о времени ожидания см. в разделе "Общие сведения о жизненном цикле пространства кода".
При выполнении пространств кода взимается плата за ЦП. Остановленное пространство кода несет только затраты на хранение.
Может потребоваться остановить и перезапустить пространство кода, чтобы применить к нему изменения. Например, при изменении типа виртуальной машины, используемой для пространства кода, необходимо остановить и перезапустить его, чтобы изменения вступили в силу. Вы также можете остановить пространство кода и перезапустить или удалить его, если возникла ошибка или произошло что-то непредвиденное. Дополнительные сведения см. в разделе Остановка и запуск пространства кода.
Удаление codespace
Вы можете создать пространство кода для конкретной задачи, а затем безопасно удалить его после отправки изменений в удаленную ветвь.
Если вы попытаетесь удалить пространство кода с неотправленными фиксациями git, редактор сообщит вам, что имеются изменения, которые не были отправлены в удаленную ветвь. Вы можете отправить все необходимые изменения, а затем удалить пространство кода или продолжить, чтобы удалить пространство кода и все незафиксированные изменения. Вы также можете экспортировать код в новую ветвь, не создавая новое пространство кода. Дополнительные сведения см. в разделе Экспорт изменений в ветвь.
Пространства кода, которые были остановлены и остаются неактивными в течение указанного периода времени, будут удалены автоматически. По умолчанию неактивные пространства кода удаляются через 30 дней, но можно настроить период хранения пространства кода. Дополнительные сведения см. в разделе Настройка автоматического удаления codespace.
Если вы создаете пространство кода, плата за хранение будет продолжать взиматься до тех пор, пока она не будет удалена, независимо от того, активна ли она или остановлена. Дополнительные сведения см. в разделе Сведения о выставлении счетов для GitHub Codespaces. Удаление пространства кода не уменьшает текущую оплачиваемую сумму для GitHub Codespaces, которая накапливается в течение каждого ежемесячного период выставления счетов. Дополнительные сведения см. в разделе Просмотр сведений о потреблении GitHub Codespaces.
Дополнительные сведения об удалении пространства кода см. в разделе Удаление codespace.
Потеря подключения при использовании GitHub Codespaces
GitHub Codespaces — это облачная среда разработки и требует подключения к Интернету. Если во время работы в пространстве кода произойдет потеря подключения к Интернету, вы не сможете получить доступ к своему пространству кода. Однако все незафиксированные изменения будут сохранены. Когда подключение к Интернету будет восстановлено, вы сможете подключиться к пространству кода в том же состоянии, в котором оно было оставлено. Если ваше подключение к Интернету нестабильно, следует чаще фиксировать и отправлять изменения.
Если вы знаете, что часто работаете в автономном режиме, вы можете использовать devcontainer.json
файл с расширением "Контейнеры разработки" для VS Code для сборки и присоединения к локальному контейнеру разработки для репозитория. Дополнительные сведения см. в разделе Разработка в контейнере в документации по Visual Studio Code.