Mam nagie repozytorium, które służy jako centralny sklep dla mojego projektu. Wszyscy programiści robią to, git clone <repo>aby się z tym podzielić. Kiedy robią klon, otrzymują kasę gałęzi master (chyba że robią git clone -n), ponieważ repo.git/HEADzawiera ref: refs/heads/master, co czyni ją gałęzią aktywną .
Pytanie brzmi: jak poprawnie zmienić Active Branch ? Mógłbym po prostu zhakować repo.git/HEADplik bezpośrednio, ale wydaje się to nieprzyjemne i, no cóż, hakujące.
Próbowałem zrobić git checkout <otherbranch>w .gitkatalogu repo , ale to nie powiodło się, ponieważ nie byłem w drzewie roboczym.
Próbowałem, git update-ref HEAD refs/heads/otherbranchale właśnie zaktualizowałem refs / heads / master tak, aby były takie same jak refs / heads / otherbranch (dobra, zrobiłem to w repozytorium fikcyjnym, a nie moim produkcyjnym!)
Próbowałem git update-ref --no-deref HEAD refs/heads/otherbranchi to prawie działało. Zaktualizował HEADplik, ale ustawił go na SHA1 zatwierdzenia wskazanego przez refs/heads/otherbranch.
Testuję z wersją git 1.7.0.2.msysgit.0.
Domyślam się, że nie ma sposobu, aby to zrobić git push, ponieważ zezwolenie wszystkim na zmianę domyślnej gałęzi wydaje się nieco niebezpieczne (!), Ale na pewno jest lepszy sposób na zrobienie tego w .gitkatalogu repo niż bezpośrednie włamanie się do HEADpliku.