Tengo un repositorio desnudo que se utiliza como tienda central para mi proyecto. Todos los desarrolladores lo hacen git clone <repo>para compartirlo. Cuando hacen el clon, obtienen un pago de la rama maestra (a menos que lo hagan git clone -n) porque repo.git/HEADcontiene ref: refs/heads/master, lo que la convierte en la Rama activa .
La pregunta es, ¿cómo cambio la rama activa correctamente? Simplemente podría hackear el repo.git/HEADarchivo directamente, pero eso parece desagradable y, bueno, hacky.
Intenté hacerlo git checkout <otherbranch>en el .gitdirectorio de repositorios , pero eso falló porque no estaba en un árbol de trabajo.
Intenté, git update-ref HEAD refs/heads/otherbranchpero eso solo actualizó refs / heads / master para que sea lo mismo que refs / heads / otherbranch (está bien, lo hice en un repositorio ficticio, ¡no en mi producción!)
Lo intenté git update-ref --no-deref HEAD refs/heads/otherbranch y eso casi funcionó. Actualizó el HEADarchivo, pero lo configuró en el SHA1 del commit señalado por refs/heads/otherbranch.
Estoy probando con la versión git 1.7.0.2.msysgit.0.
Supongo que no hay forma de hacerlo git push, ya que permitir que todos cambien su rama predeterminada parece un poco inseguro (!), Pero seguramente hay una mejor manera de hacerlo en el .gitdirectorio de repositorios que piratear directamente el HEADarchivo.