У меня есть пустой репозиторий, который используется в качестве центрального хранилища для моего проекта. Все разработчики делают, git clone <repo>чтобы поделиться с ним. Когда они делают клон, они получают извлечение главной ветви (если они не делают git clone -n), потому что repo.git/HEADсодержит ref: refs/heads/master, делая это Активная ветвь .
Вопрос в том, как правильно изменить Active Branch ? Я мог бы просто взломать 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файла.