[git] feat: git show e git checkout desbloqueados!
Hoje no trabalho precisei rodar um script que configura automaticamente a conexão com o banco de dados e com a SSH, porém, ao tentar executar eles pelo terminal percebi que eles simplesmente não existiam mais.
Durante a madrugada o CTO refatorou o projeto e decidiu remover esses arquivos para limpar o projeto. Então tive que ir atrás deles em commits passados, só que nunca havia passado por isso antes.
Então perguntei pro GPT como faria isso e ele me apresentou dois comandos maneiríssimos:
git show
Este serve para mostrar os arquivos / pastas no terminal. Usei ele inicialmente para procurar pelos arquivos nos outros commits e descobrir em que commit do repo ainda tinha os arquivos que eu precisava.
Funciona da seguinte forma, ele recebe dois parâmetros: o hash(SHA) correspondente ao seu commit e o caminho da pasta ou arquivo que você quer olhar.
Exemplo:
git show sha:app/
Retorno:
Controllers/
Models/
Views/
Utils/
Este código é gerado toda vez que você faz um commit, olhando na lista de commits pelo Github você consegue copiar ele.
git checkout
Agora que já sabemos em que commit olhar para puxar nossos arquivos, podemos usar o git checkout. Ele serve para puxar o arquivo do commit passado para a pasta atual, importante notar que ele apenas puxa o arquivo, não troca de branch.
Exemplo:
git checkout sha -- app/
E boa! problema resolvido.