Tôi có kho lưu trữ trống được sử dụng làm cửa hàng trung tâm cho dự án của mình. Tất cả các nhà phát triển làm git clone <repo>
để chia sẻ với nó. Khi họ làm bản sao, họ nhận được thanh toán chi nhánh chính (trừ khi họ làm git clone -n
) vì repo.git/HEAD
chứa ref: refs/heads/master
, làm cho chi nhánh hoạt động hoạt động này.Git: Cách đúng để thay đổi Active Branch trong kho lưu trữ trống?
Câu hỏi là, làm cách nào để thay đổi Active Branch đúng cách? Tôi chỉ có thể hack trực tiếp tập tin repo.git/HEAD
, nhưng điều đó có vẻ khó chịu và, tốt, hacky.
Tôi đã thử thực hiện git checkout <otherbranch>
trong thư mục repo .git
, nhưng điều đó không thành công vì tôi không ở trong một cây làm việc.
tôi đã cố gắng git update-ref HEAD refs/heads/otherbranch
nhưng điều đó chỉ được cập nhật refs/con/tổng thể để được giống như refs/heads/otherbranch (okay, tôi đã là một trong một kho lưu trữ giả, không phải là một sản xuất của tôi!)
tôi đã cố gắng git update-ref --no-deref HEAD refs/heads/otherbranch
và gần như đã hoạt động. Nó cập nhật tệp HEAD
, nhưng nó đặt nó thành SHA1 của cam kết được trỏ đến bở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 thông qua git push
, vì cho phép tất cả và tạp phẩm 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 để thực hiện trong thư mục repo .git
trực tiếp hack tập tin HEAD
.
IMO bạn chỉ đang cố gắng thực hiện Điều sai ở đây. Nếu bạn muốn nhánh mặc định là cái gì đó không phải là master, thì nhánh đó cần phải là master. Ngoài ra, hãy sử dụng hai kho lưu trữ khác nhau. –
Làm thế nào về cơ bản là cố gắng làm điều sai trái ở đây? Một kho trống hỗ trợ nhiều nhánh. Tôi sử dụng một kho lưu trữ trống như là back-up cho kho lưu trữ cục bộ của tôi, và như vậy phản ánh các nhánh. Tôi có một bậc thầy về cả hai và một chi nhánh phát triển trên cả hai. Nếu tôi muốn xem nhật ký của nhánh phát triển trên kho lưu trữ trống, tôi phải hack các tệp - có vẻ như git về cơ bản là sai ở đây liên quan đến hỗ trợ kho lưu trữ trần. – Cthutu
@NicholasKnight IMHO bạn về cơ bản là sai ở đây. Không có gì đặc biệt về "master" như một tên chi nhánh, nó chỉ là một mặc định. Trong các kho lưu trữ mà chúng tôi không có chi nhánh chính, vì "chính" không có ý nghĩa đối với công ty. Bất cứ khi nào chúng tôi thực hiện bản phát hành, chúng tôi tạo một chi nhánh bảo trì mới với số bản phát hành mới và chỉ định đó làm chi nhánh đang hoạt động. – Spacemoose