Espaço de trabalho de backup sem cópias locais de repositórios git remotos

1

Eu gostaria de fazer backup do meu espaço de trabalho sem fazer backup de todo o conteúdo dos repositórios git que estão on-line disponíveis de qualquer maneira.

Então eu penso em algo como, que eu poderia fazer backup apenas do arquivo .git/config em cada pasta, então se eu quiser restaurar algum projeto do backup, eu só tenho que ir para a pasta e buscar o estado atual.

Quais arquivos eu teria que fazer backup para poder restaurar um projeto?

(Perfeitamente seria uma rotina que verifica se todos os arquivos que eu tenho localmente são enviados para um controle remoto e se ele encontrar alterações locais, os arquivos serão copiados para backup.)

    
por rubo77 30.08.2015 / 22:40

1 resposta

0

So I think of something like, that I could backup only the file .git/config in each folder, so if I want to restore some project from the backup, I only have to go into the folder and fetch the current state.

Isso não é suficiente. Você também precisará fazer o backup, pelo menos:

  • Todos os commits feitos localmente, mas não (ainda), enviados para qualquer repositório remoto
  • Os arquivos no diretório ou índice de trabalho que não foram testados ou confirmados
  • Todos os stashes do Git

Você pode usar git bundle para chegar ao seu objetivo. Por exemplo:

  1. Confirme tudo no índice e tudo o que estiver sujo no diretório de trabalho, por exemplo, para ramificações remotas.
  2. Converta todos os stashes em filiais reais
  3. Execute isto:

    git bundle create /tmp/foo $(git branch -r $(git branch -r | awk '{ print $1 }')
    

Faça agora o backup de /tmp/foo e .git/config .

Isto não é muito automático nem garanto que não perca nada. Eu não recomendo que você realmente faça isso.

Ou confira Convertendo o repositório git em superficial? Isso pode estar mais perto do que você está procurando.

    
por 31.08.2015 / 04:34

Tags