Skip to main content

Noções básicas sobre o ciclo de vida do codespace

É possível realizar o desenvolvimento em um ambiente do GitHub Codespaces e manter seus dados ao longo de todo o ciclo de vida do codespace.

Este artigo explica as fases da vida útil de um codespace, da criação à exclusão. Se você leu o artigo "Guia de início rápido do GitHub Codespaces" e agora deseja começar a usar o GitHub Codespaces para seu trabalho, confira os artigos abaixo de "Desenvolver em um codespace".

Sobre o ciclo de vida de um codespace

O ciclo de vida de um codespace começa quando você cria um código e termina quando você o exclui. Você pode desconectar-se e reconectar-se a um codespace ativo sem afetar seus processos em execução. Você pode parar e reiniciar o processo sem perder as alterações feitas no seu projeto.

Criar um codespace

Quando você deseja trabalhar em um projeto, você pode optar por criar um novo codespaceou abrir um codespace já existente. Você tem a opção de criar um codespace com base em um branch do projeto sempre que realizar o desenvolvimento no GitHub Codespaces ou manter um codespace de longo prazo para um recurso. Ao iniciar um novo projeto, você pode criar um codespace com base em um modelo e publicá-lo mais tarde em um repositório no GitHub. Para saber mais, confira "Como criar um codespace para um repositório" e "Como criar um codespace com base em um modelo".

Há limites para o número de codespaces que você pode criar e o que você pode executar ao mesmo tempo. Esses limites variam de acordo com uma série de fatores. Se você atingir o número máximo de codespaces e tentar criar outro, uma mensagem será exibida informando que você deverá remover um codespace antes de criar um novo. Da mesma forma, se você atingir o número máximo de codespaces ativos e tentar iniciar outro, será solicitado que você encerre um de seus codespaces ativos.

Se você escolher criar um novo codespace, sempre que você trabalhar em um projeto, você deverá fazer push das alterações regularmente para que todos os novos commits estejam em GitHub. Se você optar por usar um codespace de longo prazo para o seu projeto, você deverá retirá-lo do branch padrão do repositório cada vez que começar a trabalhar no seu codespace para que seu ambiente tenha os commits mais recentes. Esse fluxo de trabalho é muito parecido como se você estivesse trabalhando com um projeto na sua máquina local.

Para acelerar a criação de codespaces, os administradores de repositório podem habilitar pré-builds do GitHub Codespaces em um repositório. Para obter mais informações, confira "Sobre as pré-compilações do GitHub Codespaces".

Salvar alterações em um codespace

Ao conectar-se a um código através da web, a gravação automática é habilitada automaticamente para o editor da web e configurada para salvar as alterações após um atraso. Ao conectar-se a um codespace por meio de Visual Studio Code em execução no seu computador, você deverá habilitar o salvamento automático. Para obter mais informações, confira Salvar/Salvar Automaticamente na documentação do Visual Studio Code.

O trabalho será salvo em uma máquina virtual na nuvem. É possível fechar e parar um codespace e retornar ao trabalho salvo mais tarde. Se você tiver alterações não salvas, seu editor solicitará que você as salve antes de sair. No entanto, se o codespace for excluído, o trabalho também será. Para manter seu trabalho, faça commit das alterações e as envie por push ao repositório remoto ou publique-o em um novo repositório remoto, caso o codespace tenha sido criado com base em um modelo. Para obter mais informações, confira "Usando controle de origem no seu codespace".

Limites de tempo do GitHub Codespaces

Se você não interagir com o seu codespace em execução ou se você sair do seu codespace sem pará-lo explicitamente, ele vai expirar após um determinado tempo de inatividade e vai parar de executar. Por padrão, um código vai expirar após 30 minutos de inatividade. No entanto, você pode personalizar a duração do período de tempo limite para novos codespaces que você criar. Para obter mais informações sobre como definir o período de tempo limite padrão para seus codespaces, confira "Como definir seu período de tempo limite para o GitHub Codespaces". Para obter mais informações sobre como interromper um codespace, confira "Como interromper um codespace".

Quando o tempo de um codespace chega ao limite, os seus dados são preservados da última vez que suas alterações foram salvas. Para obter mais informações, confira "Como salvar alterações em um codespace".

Reconstruindo um codespace

Você pode recompilar um codespace para implementar alterações feitas na configuração do contêiner de desenvolvimento. Para a maioria dos usos, você pode criar um novo codespace como uma alternativa à reconstrução de um codespace. Por padrão, quando você recompila seu codespace, GitHub Codespaces reutilizará imagens do cache para acelerar o processo de recompilação. Como alternativa, você pode executar uma recompilação completa, que limpa o cache e recria o contêiner com imagens novas.

Observação: quando você recompila o contêiner em um codespace, as alterações feitas fora do diretório /workspaces são limpas. As alterações feitas dentro do diretório /workspaces, que inclui o clone do repositório ou do modelo com base no qual você criou o codespace, são preservadas em uma recompilação. Para obter mais informações, confira "Aprofundamento de GitHub Codespaces".

Para obter mais informações, confira "Introdução aos contêineres de desenvolvimento" e "Como recompilar o contêiner em um codespace."

Interrompendo um codespace

Você pode interromper um codespace a qualquer momento. Ao interromper um codespace, todos os processos em execução são interrompidos. Qualquer alteração salva no seu codespace ainda estará disponível na próxima vez que você iniciá-lo. O histórico do terminais é preservado, mas o conteúdo visível da janela do terminal não é preservado entre as sessões de codespace.

Se você não interromper explicitamente um codespace, ele continuará sendo executado até que o tempo seja esgotado em razão de inatividade. O fechamento de um codespace não o interrompe. Por exemplo, se você estiver usando um codespace no cliente Web do VS Code e fechar a guia do navegador, o codespace permanecerá em execução no computador remoto. Para saber mais sobre os tempos limite, confira "Noções básicas sobre o ciclo de vida do codespace".

Somente a execução de codespaces incorre em encargos de CPU. Um codespace interrompido incorre apenas em custos de armazenamento.

Você deverá interromper e reiniciar um codespace para aplicar as alterações nele. Por exemplo, se você mudar o tipo de máquina usado no seu codespace, você deverá interromper e reiniciá-la para que a alteração seja implementada. Você também pode interromper o seu codespace e optar por reiniciá-lo ou excluí-lo se você encontrar um erro ou algo inesperado. Para obter mais informações, confira "Parar e iniciar um codespace".

Excluir um codespace

Você pode criar um codespace para uma tarefa específica e, em seguida, excluir com segurança o codespace depois que você fizer push das alterações em um branch remoto.

Se você tentar excluir um codespace com commits git que não foram enviados por push, o seu editor notificará você de que você tem alterações que não foram enviadas por push para um branch remoto. Você pode fazer push de todas as alterações desejadas e, em seguida, excluir o seu codespace ou continuar excluindo o seu codespace e todas as alterações que não foram enviadas por commit. Você também pode exportar seu codespace para um novo branch sem criar um novo codespace. Para obter mais informações, confira "Exportando alterações para um branch".

Os codespaces interrompidos que permanecerem inativos por um período especificado serão excluídos automaticamente. Por padrão, os codespaces inativos são excluídos após 30 dias, mas é possível personalizar o período de retenção deles. Para obter mais informações, confira "Como configurar a exclusão automática de seus codespaces".

Se você criar um codespace, ele continuará acumulando encargos de armazenamento até ser excluído, independentemente de estar ativo ou ter sido interrompido. Para obter mais informações, confira "Sobre o faturamento do GitHub Codespaces". A exclusão de um codespace não reduz o valor atual faturável do GitHub Codespaces, que é acumulado durante cada ciclo de cobrança mensal. Para obter mais informações, confira "Como visualizar o uso do GitHub Codespaces".

Para obter mais informações sobre como excluir um codespace, confira "Excluir um codespace".

Perder a conexão ao usar o GitHub Codespaces

O GitHub Codespaces é um ambiente de desenvolvimento baseado na nuvem que requer uma conexão com a Internet. Se você perder a conexão à internet enquanto trabalha em um codespace, você não poderá acessar seu codespace. No entanto, todas as alterações não comprometidas serão salvas. Quando você tiver acesso a uma conexão à internet novamente, você poderá conectar-se ao seu codespace no mesmo estado em que ele foi deixado. Se você tiver uma conexão instável, você deverá se fazer envio por commit e push das suas alterações com frequência.

Se você geralmente trabalha offline, é possível usar o arquivo devcontainer.json com a extensão "Contêineres de desenvolvimento" para o VS Code a fim de compilar e anexar arquivos a um contêiner de desenvolvimento local do seu repositório. Para obter mais informações, confira Desenvolvimento em um contêiner na documentação do Visual Studio Code.