Ich habe ein nacktes Repository, das als zentraler Speicher für mein Projekt verwendet wird. Alle Entwickler tun git clone <repo>
, um mit ihm zu teilen. Wenn sie den Klon ausführen, erhalten sie eine Überprüfung des Hauptzweigs (sofern dies nicht der Fall ist git clone -n
), da dieser repo.git/HEAD
enthält ref: refs/heads/master
, wodurch dieser zum aktiven Zweig wird .
Die Frage ist, wie ich den aktiven Zweig richtig ändere . Ich könnte die repo.git/HEAD
Datei einfach direkt hacken , aber das scheint böse und, na ja, hackig.
Ich habe es git checkout <otherbranch>
im Repo- .git
Verzeichnis versucht , aber das ist fehlgeschlagen, weil ich nicht in einem Arbeitsbaum war.
Ich habe versucht, git update-ref HEAD refs/heads/otherbranch
aber das hat gerade refs / Heads / Master so aktualisiert, dass es mit Refs / Heads / Otherbranch identisch ist (okay, ich habe das in einem Dummy-Repository gemacht, nicht in meinem Produktions-Repository!)
Ich habe es versucht git update-ref --no-deref HEAD refs/heads/otherbranch
und das hat fast funktioniert. Die HEAD
Datei wurde aktualisiert , aber auf SHA1 des Commits gesetzt, auf das von verwiesen wird refs/heads/otherbranch
.
Ich teste mit der Git-Version 1.7.0.2.msysgit.0
.
Ich vermute, es gibt keine Möglichkeit, dies zu tun git push
, da es ein bisschen unsicher (!) Scheint, allen und jedem zu erlauben, Ihren Standardzweig zu ändern, aber es gibt sicherlich einen besseren Weg, dies im Repo- .git
Verzeichnis zu tun, als die HEAD
Datei direkt zu hacken .