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/HEAD
contient 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/HEAD
fichier directement, mais cela semble méchant et, bien, hacky.
J'ai essayé de faire git checkout <otherbranch>
dans le .git
ré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/otherbranch
mais 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/otherbranch
et ça a presque fonctionné. Il a mis à jour le HEAD
fichier, 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 .git
répertoire repo que de pirater directement le HEAD
fichier.