Dos manuais, git-format-patch prepara patches adequados para envio de e-mail, enquanto git-diff mostra as alterações.
Eles são duas coisas diferentes e têm propósitos diferentes, eles apenas geram um formato de patch. Mas git-format-patch
adiciona dados sobre um commit (data, autor, mensagem de commit) e os agrupa em um formato que é adequado para enviar como uma mensagem de correio Unix (embora sejam apenas arquivos, então eles podem ser enviados para outros métodos e ainda aplicados por git-am).
Também git-format-patch
gera um arquivo de patch para cada confirmação no intervalo que você especificar. Essas mudanças serão adicionadas como commits em seu repositório com git-am
.
git-diff
apenas mostra a diferença entre os dois estados solicitados e pode ser usado para criar um arquivo de patch. Mas este é apenas um arquivo de patch normal e a aplicação do patch apenas mudará o estado do diretório de trabalho.
E sim, você pode criar um patch para o seu índice dessa forma.