> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Git disaster recovery

> Aprenda a recuperar seu histórico Git e código usando o sistema automático de backup da Replit.

A Replit faz backup automático do seu repositório Git para ajudá-lo a se recuperar de problemas como pastas `.git` corrompidas ou histórico de commits perdido. Esse sistema de backup funciona em segundo plano, então seu trabalho está protegido sem nenhum esforço extra.

## Como funciona

Todo Replit App mantém um backup seguro do seu repositório Git. Quando o Replit Agent faz alterações no código ou você publica seu app, elas são automaticamente sincronizadas com esse backup. Se o seu repositório Git local ficar corrompido ou inutilizável, você pode restaurar seu histórico completo de commits a partir do backup.

<Info>
  O remote de backup é chamado `gitsafe-backup` e é gerenciado automaticamente pela Replit. Você não precisa configurar nada — ele já está funcionando em segundo plano.
</Info>

## Visualizando seu histórico de backup

A maneira mais fácil de visualizar seu histórico de commits é pelo [Git Pane](/core-concepts/project-editor/version-control/git-interface). Abra-o na seção Tools do Project Editor — ele mostra seu histórico completo de commits, incluindo todos os checkpoints do Agent. Isso funciona para a maioria dos casos e não requer nenhum comando.

Se você precisar inspecionar o remote gitsafe-backup diretamente, pode usar o Shell:

```bash theme={null}
git fetch gitsafe-backup main
git log gitsafe-backup/main
```

Isso mostra seu histórico completo de commits, incluindo todos os checkpoints do Agent e commits manuais. Você pode usar isso para verificar se seu trabalho está com backup ou para encontrar um commit específico para restaurar.

## Recuperando de problemas no Git

Se você encontrar erros no Git ou seu repositório ficar corrompido, comece pelo [Git Pane](/core-concepts/project-editor/version-control/git-interface). Ele pode resolver a maioria dos problemas comuns — como redefinir para um commit anterior ou puxar de um remote — sem precisar de comandos do Shell.

Para casos em que o Git Pane não consegue ajudar (como uma pasta `.git` totalmente corrompida), use as etapas baseadas no Shell abaixo.

### Verificar se o backup está disponível

Primeiro, verifique se o remote de backup existe:

```bash theme={null}
git remote -v
```

Procure `gitsafe-backup` na saída. Se estiver presente, você pode prosseguir com a recuperação.

### Restaurar seu repositório

<Warning>
  Este processo substitui sua pasta `.git` atual pela versão com backup. Seus arquivos de trabalho permanecem inalterados, mas seu histórico Git local será substituído pelo backup.
</Warning>

<Steps>
  <Step title="Salvar sua configuração Git atual">
    Faça backup do arquivo de configuração Git caso você tenha configurações personalizadas:

    ```bash theme={null}
    cp .git/config .git_config_backup
    ```
  </Step>

  <Step title="Clonar o repositório de backup">
    Crie um clone temporário a partir do backup:

    ```bash theme={null}
    git clone --bare git://gitsafe:5418/backup.git /tmp/gitsafe-restore
    ```
  </Step>

  <Step title="Substituir sua pasta Git">
    Mova sua pasta `.git` corrompida para o lado e substitua-a pelo backup:

    ```bash theme={null}
    mv .git .git_corrupted_backup
    mv /tmp/gitsafe-restore/ .git
    ```
  </Step>

  <Step title="Restaurar sua configuração">
    Copie de volta sua configuração Git:

    ```bash theme={null}
    mv .git_config_backup .git/config
    ```
  </Step>
</Steps>

Após concluir essas etapas, execute `git status` para verificar se seu repositório está funcionando corretamente.

## Solução de problemas comuns

### "fatal: repository not found" ou remote de backup ausente

O sistema de backup pode não estar habilitado para projetos mais antigos. Entre em contato com o suporte se precisar de ajuda para recuperar um projeto mais antigo.

### A recuperação não incluiu commits recentes

Os backups são sincronizados após cada commit do Agent. Se você fez alterações mas não as commitou, essas alterações não estarão no backup. Verifique seu diretório de trabalho por quaisquer arquivos não commitados.

### Operações Git estão lentas ou travadas

Se as operações Git ficarem sem resposta, você pode ter um arquivo de lock obsoleto. Você pode removê-lo com segurança:

```bash theme={null}
rm -f .git/index.lock
```

## Prevenindo perda de dados

Embora o sistema de backup proteja seu histórico Git automaticamente, você pode tomar medidas adicionais para proteger seu trabalho:

* **Faça commits com frequência**: Faça commits pequenos e frequentes para que seu progresso seja continuamente salvo em backup
* **Use checkpoints**: Ao trabalhar com o [Replit Agent](/core-concepts/agent), os checkpoints criam commits automaticamente em marcos importantes
* **Conecte ao GitHub**: Para projetos críticos, [conecte seu app ao GitHub](/getting-started/quickstarts/import-from-github) para uma camada adicional de backup

## Próximos passos

Para saber mais sobre controle de versão no Replit:

* [Visão geral do controle de versão](/core-concepts/project-editor/version-control): Conheça todas as opções de controle de versão
* [Usando o Git Pane](/core-concepts/project-editor/version-control/git-interface): Gerencie o Git visualmente sem linha de comando
* [Checkpoints e Rollbacks](/core-concepts/agent/checkpoints-and-rollbacks): Entenda como os checkpoints do Agent funcionam
