Como posso compartilhar um stit git?

21

Existe uma maneira de compartilhar um stash no git?

Eu trabalho em várias máquinas e muitas vezes quero poder mover meu estado atual de trabalho de um para o outro.

Eu estou procurando uma maneira que eu possa empurrar / puxar um stash de um clone para outro, e que ele apareça como o stash do outro clone, ou como um aparente branch remoto. Eu não estou esperando que o primeiro funcione necessariamente se o controle remoto já possuir algo próprio.

Dado que o stash é, na verdade, já uma ramificação com commits (aparentemente), não estou procurando por soluções como "comprometer cada stash em uma ramificação e depois compartilhá-las" - já tenho muitos, muitos ramos. Portanto, estou procurando as refspec ou similares que eu possa usar para controlar o envio / extração.

    
por PeterJCLaw 06.04.2012 / 10:27

3 respostas

17

O stash é apenas stash ou refs/stash , que você pode enviar para um ramo remoto:

git push origin stash@{2}:refs/heads/otherstash

O Git irá recusar o envio direto para refs/stash , no entanto. Além disso, parece não haver uma maneira de empurrar todo reflogs , onde os stashes anteriores são armazenados.

    
por 06.04.2012 / 14:31
5

Você pode fazer o patch e enviá-lo para alguém. a coisa que você tem que fazer é aplicá-lo.

git diff >> file.diff
    
por 02.12.2015 / 09:38
4

Não é tão bem integrado como git push , mas para evitar a criação de ramificações, uso git stash show -p > change.patch (depois de armazenar as alterações) ou mesmo git diff --cached > change.patch para criar um patch que eu git apply change.patch na próxima máquina que trabalho de.

Com essa solução, pelo menos, se muitos arquivos forem alterados no estado atual de funcionamento, tudo estará contido em uma única unidade de dados.

    
por 26.09.2014 / 23:09

Tags