risolvere il "detached HEAD" con git

mi ÃĻ capitato già due volte di avere questo problema, quindi metto qui la soluzione


git branch temp
git checkout temp
git diff master temp
git branch -f master temp
git checkout master
git branch -d temp
git push origin master

Qualche spiegazione:
in sostanza la soluzione ÃĻ creare un branch temporaneo chiamato temp, mergiarlo con il branch master ed infine committare il tutto sul branch master cancellando il branch temp