O push and pull é específico para sistemas de controle de versão descentralizados.
Você deve ler este livro link Explica tudo o que você precisa saber
Com DCVSs, o repositório é local. Se você acabou de confirmar, ele não será compartilhado no servidor remoto.
O comando push envia suas confirmações locais para o servidor remoto e as mescla.
Pull = Fetch + Merge O Git obtém as confirmações do servidor remoto (busca) como uma ramificação de rastreamento remoto e as mescla em sua ramificação.
O armazenamento é uma característica especial. Ele permite que você armazene suas modificações não confirmadas em um stash e as exclua do branch em que você está trabalhando. Você pode recuperá-los mais tarde aplicando o estoque.
É realmente útil quando você está no meio de uma grande mudança, e você só quer fazer uma correção rápida. Você só precisa esconder as alterações, escrever a correção, confirmá-la e depois aplicar o estoque salvo para voltar ao seu trabalho.