Aqui está meu apelido de nome imaturo, do qual aproveito muito. Seu propósito é simples: armazenar as mudanças de trabalho, verificar um branch, extrair o último desse branch (da origem) e então reaplicar o stash. Eu pareço usá-lo diariamente, pois sempre tenho pequenas alterações / notas na minha árvore de trabalho.
Execute este comando para configurar um alias git global:
git config --global alias.poop '!sh -c '"'git diff-index HEAD --quiet --exit-code; NEEDS_STASH=$?; if [ "$NEEDS_STASH"" -eq ""1"" ] ; then git stash; else echo ""Nothing to stash.""; fi; git checkout ""$0"" && git pull origin ""$0""; if [ ""$NEEDS_STASH"" -eq ""1"" ] ; then git stash pop; fi;'""
Uso:
git poop <branch-name>
por exemplo:
# equates to: git stash; git checkout develop; git pull origin develop; git stash pop
git poop develop
É inteligente o suficiente para reaplicar as alterações armazenadas apenas se as alterações foram armazenadas. Sinto que não é perfeito