Usando diff e patch
Esses dois comandos são ferramentas extremamente úteis para o programador, com esses dois comandos fica fácil enviar patchs (remendos) de código para outros programadores sem precisar enviar o código todo.
diff
Digamos que você tem dois arquivos texto, um original e outro que é uma cópia do original com alguma modificação.
O comando diff procura por diferenças entre dois arquivos ou mesmo duas arvores de diretórios, a forma mais simples de usar esse comando é a seguinte:
diff arquivoOriginal arquivoModificado
Esse comando vai retornar as diferenças entre os dois arquivos.
Para criar um arquivo patch redirecione a saída do diff como no exemplo abaixo.
diff arquivoOriginal arquivoModificado > arquivo.patch
patch
Para aplicar o patch e modificar o arquivo original deixando igual ao arquivo modificado basta fazer como no exemplo.
patch arquivoOriginal arquivo.patch
Esse comando modificará o arquivo original aplicando as modificações e o resultado será idêntico ao arquivo modificado.
Esses são as formas mais básicas de usar diff e patch, existem muitos parâmetros úteis para serem explorados na man page.
Usando git
O git também pode gerar arquivos patch basta usar o comando abaixo.
git show > arquivo.patch
Outra opção para gerar arquivos de patch a partir do git é o comando diff como no exemplo abaixo.
git diff > arquivo.patch
Também é possível fazer patch de arquivos binários, útil quando se tem algum recurso como imagens no repositório.
git add .
git diff --staged --binary > arquivo.patch
Como esperado é possível aplicar o patch usando git também, para isso basta usar o comando apply como no exemplo abaixo.
git apply arquivo.patch
Conclusão
Hoje em dia com tudo em repositórios on-line como GitHub e outros o velho diff e patch são menos lembrados, mas ainda continuam úteis, às vezes é uma forma prática de transportar alterações principalmente em sistemas que por segurança estão fora da grande rede.