Criar um novo branch remoto

git push origin origin:refs/heads/nome-do-branch

Começar a trabalhar localmente no branch remoto recém criado

git checkout --track -b nome-do-branch origin/nome-do-branch

Apagar um branch remoto do clone local (Na documentação do git eles são chamados de remote-tracking branches. No próximo fetch ou pull eles serão recriados.)

git branch -d -r origin/nome-do-branch

Apagar um branch do repositório remoto

git push origin :nome-do-branch // não esquecer dos ":" na frente do nome do branch

Apagar um branch local

git branch -d nome-do-branch

Refazer o último commit

Supondo que você fez um commit, mas por acaso esqueceu de fazer o git add em um arquivo. Faça o git add no arquivo e depois execute:

git commit --amend

O último commit será refeito com as alterações que você fez após ele.

Merge entre o master e um remote-tracking branch

git merge master origin/nome-do-branch

Salvar mudanças temporariamente para poder fazer um rebase ou pull

git stash save

Restaurar as mudanças salvas anteriormente

git stash apply

Limpar a lista de stash(mesmo após aplicar ele continua salvo)

git stash clear

Enviar as tags locais para o repositório remoto

git push --tags

Apagar uma tag remota

git push origin :refs/tags/nome-da-tag

Apagar todas as mudanças não comitadas até o momento (deixa o seu branch limpo, mas não apaga arquivos novos que nunca foram comitados)

git checkout -f 

Fazer um ‘git rm’ arquivo por arquivo pode ser chato. E as vezes você não pode usar o ‘git add -u’ senão ele atinjirá arquivos que você não deseja

git ls-files --deleted | xargs git rm

Remover referência a branchs remotos já apagados

git remote prune origin