git diff e git apply, o jeito adequado de zipar uma branch para envio
Quando estamos fazendo uma feature e perdemos acesso ao repositório, precisamos dar um jeito de enviar o código. O que acontece é que a primeira ideia que passa pela cabeça é enviar um .zip da pasta do projeto, na branch da feature, para que alguém que tenha acesso possa subir nossas alterações.
Bom, e se pudessemos enviar somente o que foi alterado?
E, se estivermos no lugar de quem esta recebendo, tivesse um jeito simples de aplicar essas alterações recebidas?
Com git diff
podemos salvar as alterações em um arquivo, para então aplica-las com git apply
Vamos ao post!
1. Gerando um diff.txt
Através do comando git diff
, é possível visualizar diferenças entre branches, ou entre commits.
Por exemplo, estou adicionando um footer no meu site, na branch feature/footer
.
Ao executar o comando git diff main
, posso ver qual é a diferença da branch atual com a main:
No Linux (ou Windows com Git Bash), a saida de qualquer comando, que aparece no terminal, pode ser salva em um arquivo, se você adicionar o operador >
.
O comando abaixo salva a saida do git diff
em um arquivo chamado footer-diff.txt
, ou seja, agora tenho todas alterações do código da branch atual em relação a main registradas em um único arquivo!
git diff main > footer-diff.txt
2. Aplicando alterações de um diff.txt
Agora, quando na branch main
e com o arquivo footer-diff.txt
em mãos, podemos rodar um git apply
para aplicar todas alterações que estão no arquivo diff, que geramos a partir da branch anterior.
git apply footer-diff.txt
Todas as alterações geradas no arquivo diff serão aplicadas!
Viu? Uma situação como essa nem sempre precisa gerar um trabalho chato, monotono e manual!