No meu trabalho, geralmente me pego trocando de ramos com muita frequência. Às vezes é difícil lembrar a última árvore de trabalho em que você estava, se você já passou por muitas mudanças.
Portanto, configurei dois alias para usar em checkouts.
[alias]
co = "!git rev-parse --abbrev-ref HEAD > .last_branch ; git checkout"
coo = "!git co `cat .last_branch`"
Ao fazer o check-out de um branch, git co -b new-branch
ele cria um novo arquivo na raiz do seu projeto, chamado .last_branch
apenas com a árvore de trabalho atual antes do checkout, e então fará o checkout do branch permitindo que você trabalhe normalmente.
Quando você quiser fazer o checkout do último branch, apenas use git coo
e ele fará cat
o .last_branch
checkout do arquivo e do branch original.
Muito útil quando você está trabalhando em ramos de muitas pessoas com frequência.
Agora você provavelmente vai querer adicionar .last_branch
ao seu .gitignore