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 diffem 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.txtem 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!

VSCode exibindo alterações aplicadas nos arquivos footer.tsx e index.js

Viu? Uma situação como essa nem sempre precisa gerar um trabalho chato, monotono e manual!

Jack Of All Trades

Jack Of All Trades