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/HEAD
contiene ref: refs/heads/master
, rendendolo il ramo attivo .
La domanda è: come posso modificare correttamente l' Active Branch ? Potrei semplicemente hackerare il repo.git/HEAD
file direttamente, ma questo sembra brutto e, beh, hacky.
Ho provato a farlo git checkout <otherbranch>
nella .git
directory dei repository , ma non è riuscito perché non ero in un albero di lavoro.
Ho provato, git update-ref HEAD refs/heads/otherbranch
ma 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/otherbranch
e ha funzionato quasi. Ha aggiornato il HEAD
file, 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 .git
directory repo che hackerare direttamente il HEAD
file.