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/HEAD
có 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/HEAD
tệ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 .git
thư 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/otherbranch
như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/otherbranch
và đ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 .git
thư mục repo hơn là trực tiếp hack HEAD
tệp.