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/HEADenthä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/HEADDatei einfach direkt hacken , aber das scheint böse und, na ja, hackig.
Ich habe es git checkout <otherbranch>im Repo- .gitVerzeichnis versucht , aber das ist fehlgeschlagen, weil ich nicht in einem Arbeitsbaum war.
Ich habe versucht, git update-ref HEAD refs/heads/otherbranchaber 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/otherbranchund das hat fast funktioniert. Die HEADDatei 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- .gitVerzeichnis zu tun, als die HEADDatei direkt zu hacken .