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