Ho un repository nudo che viene utilizzato come archivio centrale per il mio progetto. Tutti gli sviluppatori fanno git clone <repo>per condividere con esso. Quando eseguono il clone, ottengono un checkout del ramo master (a meno che non lo faccia git clone -n) perché repo.git/HEADcontiene ref: refs/heads/master, rendendolo il ramo attivo .
La domanda è: come posso modificare correttamente l' Active Branch ? Potrei semplicemente hackerare il repo.git/HEADfile direttamente, ma questo sembra brutto e, beh, hacky.
Ho provato a farlo git checkout <otherbranch>nella .gitdirectory dei repository , ma non è riuscito perché non ero in un albero di lavoro.
Ho provato, git update-ref HEAD refs/heads/otherbranchma che refs / heads / master è stato aggiornato per essere lo stesso di refs / heads / otherbranch (ok, l'ho fatto in un repository fittizio, non in quello di produzione!)
Ci ho provato git update-ref --no-deref HEAD refs/heads/otherbranche ha funzionato quasi. Ha aggiornato il HEADfile, ma lo ha impostato su SHA1 del commit indicato da refs/heads/otherbranch.
Sto testando con la versione git 1.7.0.2.msysgit.0.
Immagino che non ci sia modo di farlo git push, dato che consentire a tutti quanti di cambiare il tuo ramo predefinito sembra un po 'pericoloso (!), Ma sicuramente c'è un modo migliore per farlo nella .gitdirectory repo che hackerare direttamente il HEADfile.