J'ai un référentiel nu utilisé comme magasin central pour mon projet. Tous les développeurs font git clone <repo>pour partager avec elle. Quand ils font le clone, ils obtiennent une extraction de la branche principale (à moins qu'ils le fassent git clone -n) car repo.git/HEADcontient ref: refs/heads/master, ce qui en fait la branche active .
La question est, comment puis-je changer la branche active correctement? Je pourrais simplement pirater le repo.git/HEADfichier directement, mais cela semble méchant et, bien, hacky.
J'ai essayé de faire git checkout <otherbranch>dans le .gitrépertoire repo , mais cela a échoué car je n'étais pas dans un arbre de travail.
J'ai essayé git update-ref HEAD refs/heads/otherbranchmais juste mis à jour refs / heads / master pour être le même que refs / heads / otherbranch (ok, j'ai fait celui-ci dans un dépôt factice, pas celui de production!)
J'ai essayé git update-ref --no-deref HEAD refs/heads/otherbranchet ça a presque fonctionné. Il a mis à jour le HEADfichier, mais il l'a défini sur le SHA1 de la validation pointée par refs/heads/otherbranch.
Je teste avec la version git 1.7.0.2.msysgit.0.
Je suppose qu'il n'y a aucun moyen de le faire git push, car autoriser tout le monde à changer votre branche par défaut semble un peu dangereux (!), Mais il y a sûrement une meilleure façon de le faire dans le .gitrépertoire repo que de pirater directement le HEADfichier.