Faz backup, cópia ou usa Git?

 


Fosse no tempo antes do controle de versão de verdade, por 4 vezes na era recente, eu teria perdido boa parte do trabalho. Isso graças a um membro de uma das equipes das quais faço parte. A pessoa não sabe usar as ferramentas e não tem a humildade de perguntar como se faz, já que não consegue aprender buscando  pela Internet.

Antes dos controladores de versão, a gente fazia backups regulares do projeto todo e de arquivos específicos, dependendo das alterações. Isso, claro, gerava muitos problemas. Principalmente depois de um tempo, quando não se lembrava mais o porquê de tal cópia. Era bem comum apagar trechos de códigos importantes. Alguns editores ajudavam, fazendo cópias automáticas, mas assim mesmo, as perdas eram parte da rotina.

Daí conheci primeiro o  CVS e cheguei a trabalhar com ele em alguns projetos. Parecia muito bom! Mas tinha seus problemas. Quando eu já conhecia o CVS a ponto de não gostar mais dele, conheci o SVN, que prometeu mais do que entregou, eu acho. Mas usando com uma extensão chamada SVK, ele ficava bem parecido com o que um tempo depois eu conheci como Git. Este sim, ajuda de verdade e salva muito! Mas existe o push force.

É quando nem o Git resolve. Se o repositório não tiver proteção de push force, pelo menos na main ou a antiga master, nem o Git salva! Brincadeira. Salva sim! Dá voltar no tempo e com umas técnicas bem avançadas, nas quais se pode sim recuperar de um push force! Achei incrível ler sobre isso, mas eu não precisei resolver assim não.

Primeiro, fiz um git reset até onde sabia que estava bom. Eu sabia que havia uma maquina na rede com o repositório sem o force e que tinha os últimos commits. Adicionei, então, essa máquina e o caminho completo  até o repositório nela como um remoto e usei o código de lá. Foi até bem simples, depois do susto inicial.

E assim eu aprendi mais uma lição: Sempre proteger contra push force. 

Comentários

Postagens mais visitadas deste blog

Bel Duarte Fotografia

Como resolver 99% dos defeitos de mouse sem fio de qualquer fabricante