Pergunta

Suponho que permite mover mudanças de um ramo para o outro, mas isso é o que cherry picking é para e se você não está fazendo um commit das suas alterações, talvez você não deveria estar movendo-os?

Eu tenho de vez em quando aplicou o estoque errado no ramo errado, o que me deixou pensando sobre esta questão.

Foi útil?

Solução

Como mencionado, se você quiser um “esconderijo por ramo,” você realmente quer um novo ramo bifurcação fora do ramo existente.

Além disso, além do fato já mencionado que o esconderijo permite que você puxar para um ramo que você está trabalhando, ele também permite que você interruptor ramos antes de você ter comprometido tudo. Isso é útil não para cherry-picking no sentido usual tanto como para cherry-picking sua cópia de trabalho .

f.ex., Enquanto trabalhava em um ramo de funcionalidade, eu, muitas vezes, notar erros menores ou impurezas cosméticas no código que não são relevantes para esse ramo. Bem, eu só corrigir os imediatamente. Quando chega a hora de cometer, eu entrego seletivamente as alterações relevantes, mas não as correções e cosméticos. Em vez disso eu esconder aqueles, que me permite mudar para meu ramo menores de bugs-on-estável, onde eu possa, em seguida, aplicar o estoque e comprometer cada pequena correção separadamente. (Dependendo das alterações em causa, eu também vai esconder alguns deles mais uma vez, para mudar para um ramo de funcionalidade diferente, onde eu aplicar os .)

Isso me permite ir fundo no modo de programação quando estou trabalhando, e não se preocupar biblioteconomia adequada do meu código. Então, quando eu fazer uma pausa mental, eu posso voltar e cuidadosamente tipo meus mudanças em todas as prateleiras de direito.

Se o estoque não eram global, este tipo de fluxo de trabalho seria muito mais difícil de fazer.

Outras dicas

A partir do Git 1.6, você pode agora aplicar esconderijos às sucursais usando

git stash branch name_of_new_branch

Git irá criar a nova filial para você, e confira! Para mais informações, consulte

Eu estou supondo que você pode se mover esconderijos em torno de usar

git stash branch <branch | new_branch> [<stash>]

e ver uma lista de seus esconderijos, uso

git stash list

Referência

Se você quer um "esconderijo" que foge um ramo fazer algo assim para armazenar suas alterações em um novo ramo fora de seu ramo atual.

git checkout -b new_stash
git commit -a -m "stashed changes"

para desfazer o esconderijo

git reset HEAD^
git branch -d new_stash

git stash é especialmente útil porque você pode puxar alterações em uma árvore suja, ou seja, se você tem edições pendentes e quer fazer um

git pull

e você não pode, você pode esconder suas alterações, puxar e, em seguida, aplicar o esconderijo

git stash
git pull
git stash apply
git stash clear

Espero que isso ajudou!

git-stash é mais útil para me mover ainda-não-check-in alterações fora a um ramo diferente do que aquele que está em check-out.

Por exemplo - muitas vezes eu me vejo fazendo mudanças simples em uma filial correções de bugs; apenas para descobrir que uma mudança que estou trabalhando é mais complexa do que eu primeira adivinhado. Git-stash é a maneira mais fácil para mover esse conjunto de mudanças a um ramo diferente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top