Como posso formatar o patch com o que eu esconder
Pergunta
No Git, eu escovo minhas mudanças. É possível que eu possa criar um patch com o que eu escovo? E a aplicação desse patch em algum outro repositório (do meu colega de trabalho)?
Eu sei 'Git Format -Patch -1', mas acho que é isso com o que cometi. Mas estou procurando a mesma coisa por mudanças que escondi?
E como posso aplicar um patch em outro repositório?
Solução
Claro, git stash show
apoia isso:
git stash show -p
Outras dicas
Esta resposta fornece informações sobre como salvar o patch e aplicá -lo onde você deseja usá -lo.
Para esconder a saída em um arquivo:
git stash show -p --color=never > my-patch-name.patch
Verificar o patch parece bom:
git apply --stat my-patch-name.patch
Verifique não há erros:
git apply --check my-patch-name.patch
Aplique o patch
git apply my-patch-name.patch
Usar
$> git stash list
stash@{0}: WIP on master: 84fx31c Merged with change to /public/
stash@{1}: WIP on master: 463yf85 FlupResource: also takes json as a query parameter
Para obter uma lista de suas coisas recentemente escondidas. Git realmente cria objetos cometer quando você esconde.
Eles são compromissos como todo o resto. Você pode conferi -los em uma filial:
$> git checkout -b with_stash stash@{0}
Você pode publicar esta filial e seu colega pode mesclar ou escolher o cometimento.
As soluções acima não funcionam para dados binários. O seguinte adiciona suporte para ele:
git stash show stash@{0} -p --binary
Editar
Nota: Eu só queria adicionar um comentário às respostas acima, mas minha reputação não é suficiente.
Acredito que este pode ser um dos UDPates do Git recentemente. Você não precisa corrigir as mudanças que você mais escondeu. Você pode simplesmente aplicar suas alterações escondidas em uma filial a outra.
Diga no ramo A, você escondeu algumas alterações, referidas como Stash@{1}.
Agora você muda para a filial B. Você pode simplesmente fazer:
$git stash apply stash@{1}
Isso aplica seu ramo A alterações no ramo B.