Git poop – esconder, verificar, puxar e aplicar

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