Sự khác biệt giữa HEAD
và master
trong Git là gì?
Tôi đã thực hiện một bản sao của một dự án trên GitHub và muốn đẩy các thay đổi của mình lên điều khiển từ xa. Nhưng tôi nên đẩy cái nào?
Sự khác biệt giữa HEAD
và master
trong Git là gì?
Tôi đã thực hiện một bản sao của một dự án trên GitHub và muốn đẩy các thay đổi của mình lên điều khiển từ xa. Nhưng tôi nên đẩy cái nào?
Câu trả lời:
master
là một tham chiếu đến cuối của một chi nhánh. Theo quy ước (và theo mặc định), đây thường là nhánh tích hợp chính, nhưng nó không phải như vậy.
HEAD
thực sự là một loại tham chiếu đặc biệt chỉ đến một tham chiếu khác. Nó có thể trỏ đến master
hoặc có thể không (nó sẽ trỏ đến bất kỳ chi nhánh nào hiện đang được kiểm tra). Nếu bạn biết bạn muốn cam kết với master
chi nhánh thì hãy đẩy sang đây.
Đây là một ví dụ trực quan:
Trên kho lưu trữ của riêng bạn, bạn có thể kiểm tra vị trí HEAD
trỏ tới bằng cách chạy này:
$ git symbolic-ref HEAD
refs/heads/master
Tuy nhiên, việc tìm ra nơi remotes/origin/HEAD
chỉ vào là khó khăn hơn vì nó nằm trên máy từ xa.
Có một hướng dẫn nhỏ tuyệt vời về tài liệu tham khảo git ở đây:
http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1
Câu trả lời đơn giản HEAD
là một con trỏ / nhãn cho cam kết gần đây nhất của nhánh bạn hiện đang ở. master
là nhánh mặc định được tạo khi bạn khởi tạo kho git (ví dụ git init
).
Bạn có thể xóa master
chi nhánh (ví dụ git branch -D master
). Bạn không thể xóa HEAD
con trỏ.
HEAD
là một con trỏ / nhãn cho cam kết gần đây nhất của chi nhánh bạn hiện đang ở." Tôi nghĩ rằng điều này là sai lệch ở tốt nhất. Nếu bạn kiểm tra một cam kết cũ hơn, thì bây giờ CHÍNH là một con trỏ tới cam kết cũ hơn đó, không phải là cam kết gần đây nhất. Đúng?
checkout
lệnh này tương đương với việc chuyển nhánh trong các hệ thống SCM phổ biến khác.
HEAD
con trỏ Git thực sự là gì. Tôi đánh giá cao bình luận của bạn và nghĩ rằng những người khác cũng sẽ như vậy. Nội dung bài viết gốc của tôi cùng với bình luận theo dõi của bạn bổ sung cho nhau. Cảm ơn.
Đơn giản chỉ cần đẩy những thay đổi của chi nhánh hiện tại của bạn
git push origin
và nó sẽ đẩy chi nhánh của bạn ' B
' thay đổi thành ' origin/B
'.
Nếu bạn ở trên master
chi nhánh của bạn , git sẽ đẩy đến origin/master
.
Trên thực tế, nó sẽ đẩy tất cả các thay đổi trên các nhánh cục bộ phù hợp với các nhánh từ xa tại origin
. Nó được điều khiển bởi cài đặt cấu hình push.default .
Xem thêm đẩy RefSpecs trong sách Pro Git .
Những gì bạn đang thấy là thanh bên đại diện cho tất cả các refspecs của repo từ xa của bạn trong ngã ba GitX thử nghiệm của dự án GitX .
Các HEAD
sẽ chỉ chi nhánh mặc định cho từ xa mà.
Xem git remote set-head
trang người đàn ông :
Không có một nhánh mặc định cho một điều khiển từ xa là không bắt buộc, nhưng cho phép tên của điều khiển từ xa được chỉ định thay cho một chi nhánh cụ thể.
Ví dụ: nếu nhánh mặc định choorigin
được đặt thànhmaster
, thìorigin
có thể được chỉ định ở bất cứ nơi nào bạn thường chỉ địnhorigin/master
.