2010-03-09 34 views
5

Tôi mới sử dụng Git, vì vậy tôi nghi ngờ rằng tôi đang hiểu nhầm điều gì đó ở đây, nhưng tôi vẫn sẽ hỏi.Từ xa Git có chủ nhưng không có HEAD

Via TortoiseGit tôi làm như sau:

  • Init một repo Git mới tại địa phương
  • Thêm một tập tin readme để nó và cam kết
  • Thêm một điều khiển từ xa mới
  • Đẩy repo mới đến orgin (từ xa)

Nếu sau đó tôi duyệt qua Tham khảo Tôi thấy như sau:
người đứng đầu/chủ
điều khiển từ xa/nguồn gốc/chủ

Điều tôi thấy lạ là tôi không thấy HEAD trên điều khiển từ xa.

Nếu tôi xóa repo địa phương của tôi và sau đó sao chép nó từ máy chủ (tôi chỉ đẩy lên trên) và sau đó duyệt các refs tôi thấy:
đầu/master
điều khiển từ xa/gốc/HEAD
điều khiển từ xa/origin/master

Vậy tại sao tôi không nhìn thấy đầu từ xa sau lần đẩy đầu tiên?

NB. Tôi đã thực hiện tương tự thông qua lệnh Git Bash (ví dụ: không phải Tortoise Git) và đang thấy điều tương tự.

Trả lời

0

Đó là vì bạn không kéo kho lưu trữ của mình. Khi bạn đẩy bạn cập nhật ref từ xa/origin/master, nhưng không HEAD vì nó có thể là cam kết khác. Nếu bạn kéo sau khi HEAD đến.

Nó sẽ đến với bản sao của bạn sau. Tìm nạp tất cả các thông số từ xa như HEAD và master

+0

Tôi không hoàn toàn chắc chắn tôi hiểu - bạn có nói rằng sau khi tôi đã thực hiện việc đẩy ban đầu cho điều khiển từ xa, nếu tôi sau đó thực hiện một Kéo và/hoặc Tìm nạp, tôi sẽ nhận được HEAD? Bởi vì tôi đã thử điều đó và tôi thì không. – dwynne

3

Vì HEAD không phải là tham chiếu từ xa mà bạn cũng nên đẩy, nó chỉ là tham chiếu đến cam kết HEAD của kho lưu trữ từ xa trỏ đến. Kho lưu trữ này trên máy chủ rõ ràng có một cây đang hoạt động và không được tạo bằng lệnh git init --bare. Tôi đoán Tortoise Git chỉ đơn giản là bỏ qua nó bởi vì một số quy tắc trong phần mềm. Nghe có vẻ kỳ lạ là git sẽ không hiển thị nó.

Các vấn đề liên quan