En este artículo se explican las fases de la vida de un codespace, desde que se crea hasta que se elimina. Si has leído el artículo "Inicio rápido de GitHub Codespaces" y quieres empezar a usar GitHub Codespaces para tu propio trabajo, consulta los artículos de "Desarrollar en un codespace".
Acerca del ciclo de vida de un codespace
El ciclo de vida de un codespace comienza cuando lo creas y termina cuando lo borras. Puedes desconectarte y reconectarte a un codespace activo sin afectar sus procesos de ejecución. También puedes detener y reiniciar un codespace sin perder los cambios que hayas hecho a tu proyecto.
Crear un codespace
Cuando quieras trabajar en un proyecto, puedes elegir crear un codespace nuevo o abrir uno existente. Deberás crear un codespace nuevo desde una rama de tu repositorio cada vez que desarrolles en GitHub Codespaces o mantengas un codespace de ejecución extendida para una característica. Si vas a iniciar un nuevo proyecto, es posible que desees crear un codespace a partir de una plantilla y publicar en un repositorio en GitHub Enterprise Cloud más tarde. Para más información, consulta "Creación de un codespace para un repositorio" y "Creación de un codespace a partir de una plantilla".
Hay límites para el número de codespaces que puede crear y el número de codespaces que puede ejecutar al mismo tiempo. Estos límites varían en función de varios factores. Si alcanza el número máximo de codespaces e intenta crear otro, se muestra un mensaje que indica que debe quitar un codespace existente para poder crear uno nuevo. Del mismo modo, si alcanza el número máximo de espacios de codespaces e intenta iniciar otro, se le pedirá que detenga uno de los codespaces activos.
Si eliges crear un codespace nuevo cada que trabajas en un proyecto, debes subir tus cambios frecuentemente para que todas las confirmaciones nuevas se enecuentren en GitHub. Si eliges utilizar un codespace de ejecución extendida para tu proyecto, deberías hacer extracciones desde tu rama predeterminada de repositorio cada que comiences a trabajar en tu codespace para que tu ambiente tenga las confirmaciones más recientes. Este flujo de trabajo es muy similar a que si estuvieras trabajando en un proyecto en tu máquina local.
Para acelerar la creación de codespaces, los administradores de repositorios pueden habilitar precompilaciones de GitHub Codespaces para un repositorio. Para obtener más información, vea «Acerca de las precompilaciones de GitHub Codespaces».
Guardar los cambios en un codespace
Cuando te conectas a un codespace a través de la web, el guardado automático se habilita automáticamente para el editor web y se configura para guardar los cambios después de un retraso. Cuando te conectes a un codespace a través de la instancia de Visual Studio Code que se está ejecutando en tu máquina de escritorio, debes habilitar el guardado automático. Para más información, vea Guardado o guardado automático en la documentación de Visual Studio Code.
El trabajo se guardará en una máquina virtual en la nube. Puedes cerrar y detener un codespace y volver al trabajo guardado más adelante. Si tienes cambios sin guardar, tu editor te pedirá guardarlos antes de salir. Sin embargo, si se elimina el codespace, también se eliminará tu trabajo. Para conservar el trabajo, deberás confirmar los cambios e insertarlos en el repositorio remoto, o publicar tu trabajo en un nuevo repositorio remoto si creaste el codespace a partir de una plantilla. Para obtener más información, vea «Utilizar el control de código fuente en tu codespace».
Tiempos de expiración para GitHub Codespaces
Si dejas que tu codespace se ejecute sin interacción o si sales de este sin detenerlo explícitamente, el codespace se detendrá después de un periodo de espera y dejará de ejecutarse. Predeterminadamente, un codespace se detendrá después de 30 minutos de inactividad, pero puedes personalizar la duración del periodo de espera en cada codesapce nuevo que crees. Para más información sobre cómo establecer el periodo de tiempo de espera predeterminado para los codespaces, consulta "Configuración del periodo de tiempo de espera para GitHub Codespaces". Para obtener más información sobre cómo detener un codespace, vea "Detención de un codespace".
Cuando un codespace agota su tiempo de espera, tus datos se preservan desde la última vez en la que hayas guardado tus cambios. Para obtener más información, vea "Guardado de cambios en un codespace".
Reconstruir un codespace
Puede volver a generar el codespace para implementar cambios en la configuración del contenedor de desarrolladores. Para la mayoría de los usos, puedes crear un codespace como alternativa a reconstruir uno de ellos. De forma predeterminada, al recompilar el codespace, GitHub Codespaces reutilizará imágenes de la memoria caché para acelerar el proceso de recompilación. Como alternativa, puedes realizar una recompilación completa, que borra la memoria caché y recompila el contenedor con imágenes nuevas.
Nota: Al recompilar el contenedor en un codespace, los cambios realizados fuera del directorio /workspaces
se borran. Los cambios realizados dentro del directorio /workspaces
, entre los que se incluye el clon del repositorio o la plantilla desde la que ha creado el codespace, se conservan al recompilar. Para obtener más información, vea «Análisis en profundidad de GitHub Codespaces».
Para obtener más información, vea «Introducción a los contenedores dev» y «Recompilación del contenedor en un codespace».
Detener un codespace
Puedes detener un codespace en cualquier momento. Cuando detiene un codespace, cualquier proceso en ejecución se detiene. Cualquier cambio que hayas guardado en tu codespace aún estará disponible cuando lo vuelvas a iniciar. El historial de terminales se conserva, pero el contenido visible de la ventana del terminal no se conserva entre las sesiones de codespace.
Si no detienes un codespace explícitamente, este seguirá ejecutándose hasta que se detenga por inactividad. El cierre de un codespace no detiene el codespace. Por ejemplo, si usas un codespace en el cliente web de VS Code y cierras la pestaña del explorador, el codespace continúa ejecutándose en la máquina remota. Para obtener información sobre el agotamiento del tiempo de espera, consulta "Ciclo de vida de un codespace".
Solo los codespaces en ejecución incurren en cargos de CPU. Un espacio de código detenido solo conlleva costes de almacenamiento.
Es posible que debas detener y reiniciar un codespace para que se apliquen los cambios a este. Por ejemplo, si cambias el tipo de máquina que utilizas para tu codespace, necesitarás detenerlo y reiniciarlo para que el cambio tome efecto. También puedes detener tu codespace y elegir restablecerlo o borrarlo si encuentras un error o algo inesperado. Para más información, consulta "Detención e inicio de un codespace".
Borrar un codespace
Puedes crear un codespace para una tarea en particular y luego borrarlo de forma segura después de que subas tus cambios a una rama remota.
Si intentas borrar un codespace con confirmaciones de git sin subir, tu editor te notificará sobre los cambios que tengas sin subir a una rama remota. Puedes subir todos los cambios que desees y luego borrar tu codespace o continuar borrando tu codespace y cualquier cambio sin confirmar. También puedes exportar tu código a una rama nueva sin crear un codespace nuevo. Para obtener más información, vea «Exportar los cambios a una rama».
Los codespaces que se han detenido y permanecen inactivos durante un período de tiempo determinado se eliminarán automáticamente. De manera predeterminada, los codespaces inactivos se eliminan después de 30 días, pero puedes personalizar el período de retención del codespace. Para obtener más información, vea «Configuración de la eliminación automática de los codespaces».
Si creas un codespace, seguirá acumulando cargos de almacenamiento hasta que se elimine, independientemente de si está activo o detenido. Para obtener más información, vea «Acerca de la facturación de GitHub Codespaces». La eliminación de un codespace no reduce la cantidad facturable actual de GitHub Codespaces, que se acumula durante cada ciclo de facturación mensual. Para obtener más información, vea «Visualización del uso de GitHub Codespaces».
Para más información sobre cómo eliminar un codespace, consulta "Borrar un codespace".
Pérdida de la conexión al usar GitHub Codespaces
GitHub Codespaces es un entorno de desarrollo basado en la nube y requiere de una conexión a internet. Si pierdes la conexióna internet mientras trabajas en un codespace, no podrás acceder a él. Sin embargo, cualquier cambio sin confirmar, se guardará. Cuando tengas acceso a una conexión de internet nuevamente, puedes conectarte a tu codespace exactamente en el mismo estado en el que lo dejaste. Si tienes una conexión de internet inestable, deberías confirmar y subir tus cambios frecuentemente.
Si sabes que a menudo estarás trabajando sin conexión, puedes usar el archivo devcontainer.json
con la extensión "Dev Containers" para VS Code a fin de compilarlo y adjuntarlo a un contenedor de desarrollo local para el repositorio. Para obtener más información, vea Desarrollo dentro de un contenedor en la documentación de Visual Studio Code.