No git, escondo minhas alterações. É possível criar um patch com o que eu escondo? E então aplicar esse patch em algum outro repositório (do meu colega de trabalho)?
Eu sei git format-patch -1
, mas acho que é para o que comprometi. Mas estou procurando a mesma coisa por mudanças que eu escondi.
E como posso aplicar um patch em outro repositório?
man patch
e não vi nenhuma opção para aplicação de patches interativa. No entanto, como os arquivos de patch são arquivos de texto sem formatação, normalmente o que se faria é editar o patch em um editor de texto para recortar as partes relevantes a serem aplicadaspatch
. Como alternativa, se você estiver aplicando o patch em outro repositório Git, poderá aplicar tudo e selecionar seletivamente osgit checkout
arquivos que não deseja alterar (git checkout
com um nome de arquivo que joga fora as alterações não-estágios).git add --interactive ${YOUR_FILES}
e ele lhe dará a chance de confirmar parcialmente.git stash show -p stash@{1} > patch.txt
Esta resposta fornece informações sobre como salvar o patch e aplicá-lo onde você deseja usá-lo.
Para ocultar a saída em um arquivo:
Verifique se o patch está bom:
Verifique se não há erros:
Aplique o patch
fonte
git apply --check --ignore-space-change --ignore-whitespace my-patch-name.patch
Aplique o patch:git apply --ignore-space-change --ignore-whitespace my-patch-name.patch
git apply
, não pegava o diff.Usar
para obter uma lista das suas coisas escondidas recentemente. Na verdade, o Git cria objetos de confirmação quando você esconde.
Eles são commits como todo o resto. Você pode vê-los em uma filial:
Em seguida, você pode publicar esta ramificação e seu colega pode mesclar ou escolher essa confirmação.
fonte
As soluções acima não funcionarão para dados binários. A seguir, adicione suporte para ele:
Editar
Nota: Eu só queria adicionar um comentário às respostas acima, mas minha reputação não é suficiente.
fonte
Acredito que essa possa ser uma das atualizações do Git recentemente. você não precisa mais corrigir as alterações que guardou. basta aplicar as alterações ocultas em um ramo para outro.
diga na ramificação A, você escondeu algumas alterações, conhecidas como stash @ {1}.
agora você muda para a ramificação B. você pode simplesmente:
isso aplica seu ramo A muda para o ramo B.
fonte