Estou fazendo algo muito simples errado. Estou tentando preparar um arquivo de patch comum, para poder aplicar novamente algumas alterações:
$ git diff > before
$ git diff something_here > save.patch
$ git checkout .
$ patch < save.patch
$ git diff > after
$ diff before after
$
Com o something_here espaço em branco , quase funciona, mas os nomes dos arquivos não estão corretos. Acho que estou perdendo alguma opção.
Na vida real, vou fazer uma mesclagem após o checkout, para que o patch possa falhar por lá, mas você vê no que estou entrando.
Edite
Minha falha aqui por fazer a pergunta errada. A questão real é: eu quero salvar minhas alterações, fazer uma mesclagem e reaplicar as alterações, se possível? Perguntei da maneira errada, porque estou acostumado a usar o patch para resolver esse tipo de problema e git diffparecia que era isso que eu queria que eu fizesse.
Comentário de Charles Bailey teve a resposta certa. Para mim, o git-apply é a coisa certa a fazer (o git-stash parece mais pesado do que eu preciso, o rebasing e os pacotes estão definitivamente além do meu nível de habilidade atual.) Vou aceitar a resposta que Charles deu (porque você não pode aceitar um comentário). Obrigado por todas as sugestões.
Editar, 6 anos depois
Como qualquer pessoa familiarizada com o assunto sabe, eu superestimei a dificuldade de git stash. Quase todos os dias, usarei a seguinte sequência:
$ git stash
$ git merge
$ git stash pop
git stashou outras ferramentas git?
git stashé a solução mais fácil para o que você está tentando fazer, mas existem muitas abordagens que funcionam.
git-svn.
patchvez degit apply?