У мене є голе сховище, яке використовується як центральний магазин для мого проекту. Усі розробники хочуть git clone <repo>
поділитися з нею. Коли вони роблять клон, вони отримують замовлення головного відділення (якщо вони не роблять git clone -n
), оскільки repo.git/HEAD
містить ref: refs/heads/master
, роблячи це Активним Відділенням .
Питання в тому, як я можу правильно змінити Активну гілку ? Я міг би просто зламати repo.git/HEAD
файл безпосередньо, але це здається неприємним і, ну, хакі.
Я намагався робити git checkout <otherbranch>
в .git
каталозі репо , але це не вдалося, оскільки я не був у робочому дереві.
Я спробував, git update-ref HEAD refs/heads/otherbranch
але щойно оновлені refs / heads / master були такими ж, як refs / heads / otherbranch (добре, я це зробив у фіктивній сховищі, а не в моєму виробництві!)
Я спробував, git update-ref --no-deref HEAD refs/heads/otherbranch
і це майже вийшло. Він оновив HEAD
файл, але встановив його на SHA1 комітету, на який вказував refs/heads/otherbranch
.
Я тестую версію git 1.7.0.2.msysgit.0
.
Я здогадуюсь, що немає способу зробити це через те git push
, що дозволити всім і різному змінити гілку за замовчуванням здається трохи небезпечною (!), Але, безумовно, є кращий спосіб зробити це в .git
каталозі репо, ніж безпосередньо зламати HEAD
файл.