Eu tenho um repositório vazio que é usado como o repositório central do meu projeto. Todos os desenvolvedores fazem git clone <repo>para compartilhar com ele. Quando eles fazem o clone, eles obtêm uma verificação geral do ramo mestre (a menos que o façam git clone -n) porque o repo.git/HEADcontém ref: refs/heads/master, tornando este o ramo ativo .
A questão é: como altero o ramo ativo corretamente? Eu poderia simplesmente hackear o repo.git/HEADarquivo diretamente, mas isso parece desagradável e, bem, hacky.
Tentei fazer git checkout <otherbranch>no .gitdiretório repo , mas isso falhou porque não estava em uma árvore de trabalho.
Eu tentei, git update-ref HEAD refs/heads/otherbranchmas apenas atualizei refs / heads / master para ser o mesmo que refs / heads / otherbranch (ok, eu fiz isso em um repositório fictício, não na minha produção!)
Eu tentei git update-ref --no-deref HEAD refs/heads/otherbranche isso quase funcionou. Ele atualizou o HEADarquivo, mas o definiu como o SHA1 do commit apontado por refs/heads/otherbranch.
Estou testando com a versão git 1.7.0.2.msysgit.0.
Suponho que não há como fazer isso git push, pois permitir que todos alterem sua ramificação padrão parece um pouco inseguro (!), Mas certamente há uma maneira melhor de fazer isso no .gitdiretório repo do que invadir diretamente o HEADarquivo.