git update-ref
Move uma referência na marra — a alavanca que branch e tag usam por baixo.
Um ramo é só um arquivo com um hash dentro, e update-ref é a ferramenta oficial para escrevê-lo: aponta refs/heads/experimento para qualquer commit, cria referências fora de refs/heads/, apaga com -d — tudo registrando a mudança no reflog, o que edição manual de arquivo nenhuma faz.
É a alavanca dos bastidores: branch, tag e o próprio commit a acionam por baixo. Na mão de quem escreve automações — ou resgata um commit achado pelo fsck —, ela dá nome a qualquer osso do cofre.
$ git update-ref refs/heads/experimento 9e4d7b1
$ git branch --points-at 9e4d7b1
experimento