Tôi có một kho lưu trữ trần được sử dụng làm cửa hàng trung tâm cho dự án của tôi. Tất cả các nhà phát triển làm git clone <repo>để chia sẻ với nó. Khi họ thực hiện bản sao, họ sẽ kiểm tra nhánh chính (trừ khi họ làm git clone -n) vì repo.git/HEADcó chứa ref: refs/heads/master, biến đây thành Nhánh hoạt động .
Câu hỏi là, làm cách nào để thay đổi Active Branch đúng cách? Tôi chỉ đơn giản là có thể hack repo.git/HEADtệp trực tiếp, nhưng điều đó có vẻ khó chịu và, tốt, hacky.
Tôi đã thử làm git checkout <otherbranch>trong .gitthư mục repo , nhưng thất bại vì tôi không ở trong cây làm việc.
Tôi đã thử git update-ref HEAD refs/heads/otherbranchnhưng chỉ cập nhật ref / Heads / master giống như refs / Heads / otherbranch (được thôi, tôi đã làm cái đó trong kho lưu trữ giả, không phải sản phẩm của tôi!)
Tôi đã thử git update-ref --no-deref HEAD refs/heads/otherbranchvà điều đó gần như đã làm việc. Nó cập nhậtHEAD tệp, nhưng nó đặt nó vào SHA1 của cam kết được trỏ tới refs/heads/otherbranch.
Tôi đang thử nghiệm với phiên bản git 1.7.0.2.msysgit.0 .
Tôi đoán không có cách nào để thực hiện điều này git push, vì cho phép tất cả và lặt vặt thay đổi nhánh mặc định của bạn có vẻ hơi không an toàn (!), Nhưng chắc chắn có cách tốt hơn để làm điều đó trong .gitthư mục repo hơn là trực tiếp hack HEADtệp.