Se você excluir acidentalmente um script ou uma pasta dentro de um repositório no Editor de código do Earth Engine ou precisar migrar um repositório para uma nova conta, o histórico completo de commits será preservado nos registros do Git nos nossos servidores. Embora o ícone do repositório no Editor de código reverta um repositório inteiro para um estado anterior, a clonagem do repositório localmente com ferramentas de linha de comando Git padrão permite restaurar seletivamente scripts ou pastas individuais sem perder as mudanças mais recentes em outros scripts.
O que pode ser recuperado
Na guia Scripts do editor de código, seu trabalho é organizado como
users/username/repository:folder/script:
- Scripts e pastas (recuperáveis): a exclusão de um script ou pasta em um
repositório só remove o item do commit mais recente. Como o repositório
ainda existe em
earthengine.googlesource.com, é possível clonar o repositório e restaurar os arquivos excluídos do histórico de commits do Git usando a Opção A ou a Opção B. - Repositórios inteiros (não recuperáveis): a exclusão de um repositório
(
users/username/repository) remove permanentemente o repositório Git, os scripts e o histórico de commits doearthengine.googlesource.com(retornando"Repository is not found"). Depois de excluído, um repositório não pode ser clonado nem recuperado.
Primeiro, conclua os pré-requisitos e escolha uma das opções a seguir, dependendo da sua tarefa:
- Opção A: restaurar um script excluído
- Opção B: restaurar uma pasta excluída
- Opção C: migrar um repositório inteiro
Pré-requisitos
Etapa 1: gerar credenciais do Git
Como os repositórios Git hospedados pelo Google usam a autenticação de token seguro, primeiro gere suas credenciais locais do Git:
- Abra uma janela de navegação anônima ou particular no navegador da Web e acesse o gerador de senhas do Git: earthengine.googlesource.com/new-password Observação: faça login exclusivamente com sua Conta do Google registrada no Earth Engine. Se você estiver migrando um repositório para uma nova conta em Opção C, primeiro compartilhe o repositório antigo com sua nova conta e faça login aqui com sua nova Conta do Google.
- Copie todo o bloco de comandos de shell gerados mostrados na tela.
- Abra um terminal (linha de comando) no computador, cole os comandos copiados e execute-os. Isso configura automaticamente as credenciais de cookie do Git da sua máquina.
Se esta for a primeira vez que você usa o Git no computador, configure seu nome e e-mail de autor para que o Git permita criar commits:
git config --global user.name "Your Name" git config --global user.email "you@example.com"
Etapa 2: clonar o repositório (opções A e B)
Se você estiver migrando um repositório entre contas, pule para a Opção C. Para restaurar um script ou
pasta excluída, clone seu repositório no terminal local substituindo username e
repository pelos detalhes do Earth Engine. Também é possível copiar o comando de clone
exato clicando no ícone ao lado
do nome do repositório na guia Scripts:
git clone https://earthengine.googlesource.com/users/username/repository
Quando terminar, navegue até a pasta clonada:
cd repository
Opção A: restaurar um script excluído
Para recuperar um arquivo de script excluído (por exemplo, MyScript ou
MyFolder/MyScript):
Confira o histórico do arquivo para encontrar o commit de exclusão e o commit imediatamente anterior a ele (listado logo após na saída do log):
git log --oneline -- "MyScript"Restaure a última versão em que o arquivo ainda existia na sua pasta (substitua
<commit_hash>pelo hash do commit anterior à exclusão ou use<deletion_commit_hash>~1):git checkout <commit_hash> -- "MyScript"Confirme e envie o script restaurado de volta para o servidor:
git commit -m "Restore MyScript from history" git push origin
Depois de enviar, recarregue a guia Scripts do editor de código no navegador ou clique no botão na parte de cima da guia Scripts para ver o script restaurado.
Opção B: restaurar uma pasta excluída
Para recuperar uma pasta excluída e todos os scripts nela (por exemplo,
MyFolder/):
Verifique os registros de commit do Git para encontrar o commit de exclusão e o commit imediatamente anterior a ele (listado logo após na saída do registro):
git log --oneline -- "MyFolder/"Restaure a última versão em que a pasta ainda existia na sua pasta (substitua
<commit_hash>pelo hash do commit anterior à exclusão ou use<deletion_commit_hash>~1):git checkout <commit_hash> -- "MyFolder/"Confirme e envie a pasta recuperada de volta para o servidor:
git commit -m "Restore MyFolder and all its scripts" git push origin
Depois de enviar, recarregue a guia Scripts do Editor de código no navegador ou clique no botão na parte de cima da guia Scripts para ver a pasta restaurada.
Opção C: migrar um repositório inteiro
Se você precisar migrar um repositório inteiro e todo o histórico de commits para uma nova conta (por exemplo, ao fazer a transição entre contas institucionais e pessoais):
Credenciais e permissões: se você estiver migrando um repositório entre duas Contas do Google diferentes (por exemplo, de uma conta universitária ou de trabalho para uma conta pessoal), verifique se a nova conta tem permissão para ler o repositório antigo antes de começar:
- Pré-requisito de compartilhamento: faça login na sua antiga conta do Editor de código, clique no ícone ao lado do nome do repositório antigo e compartilhe com o endereço de e-mail da sua nova Conta do Google, concedendo acesso de Leitor.
- Assim, você só precisa fazer a autenticação no computador local uma vez (usando as credenciais do Git da nova conta geradas na Etapa 1). Sua nova conta terá permissão para clonar do repositório antigo e enviar para o novo, evitando conflitos de credenciais.
Clone seu repositório antigo localmente usando o Git padrão:
git clone https://earthengine.googlesource.com/users/old_username/old_repositoryCrie um repositório vazio no menu Novo > Repositório na sua nova conta do editor de código. Observação: não crie nem salve scripts ou pastas no novo repositório antes de fazer o push, ou ele vai falhar.
Navegue até o diretório clonado local:
cd old_repositoryEnvie por push todo o histórico de commits e scripts locais diretamente para seu novo repositório vazio do Earth Engine:
git push https://earthengine.googlesource.com/users/new_username/new_repository --all
Depois de fazer isso, recarregue a guia Scripts no Editor de código da sua nova conta ou clique no botão para ver o repositório e o histórico migrados.