Git push origin HEAD nghĩa là gì?


102

Tôi đã tìm thấy, trong hướng dẫn chính thức :

git push origin HEAD

Một cách tiện dụng để đẩy chi nhánh hiện tại đến cùng tên trên điều khiển từ xa.

Tuy nhiên, ý nghĩa của lệnh không rõ ràng đối với tôi. Tại sao nó có tác dụng này?

Tôi đã không thể tìm thấy câu trả lời ( câu hỏi này dường như điều trị vấn đề, nhưng tiêu đề gây hiểu lầm).

Câu trả lời:


129

HEADtrỏ đến đỉnh của nhánh hiện tại. gitcó thể lấy tên chi nhánh từ đó. Vì vậy, nó giống như:

git push origin CURRENT_BRANCH_NAME

nhưng bạn không cần phải nhớ / nhập tên chi nhánh hiện tại. Ngoài ra, nó ngăn bạn vô tình đẩy nhầm nhánh từ xa.

Nếu bạn muốn đẩy một nhánh khác với nhánh hiện tại, lệnh sẽ không hoạt động.


17
Có thể hữu ích khi đề cập rằng đó HEADlà một tham chiếu tượng trưng, ​​và nó có thể được nhìn thấy với git symbolic-ref HEAD.
John Szakmeister

Sự khác biệt giữa: git push origingit push origin HEAD?
Maciek

1
@MaciejD git push origin mà không chỉ định tên nhánh sẽ không hoạt động. hoặc là bạn thêm một tên chi nhánh hoặc bạn nói HEAD, nghĩa là chi nhánh hiện tại bạn đang ở
Schwarzie2478

2
Trên thực tế git push originlà một lệnh hợp lệ. Nếu push.defaultcài đặt cấu hình Git được đặt thành nothingthì git push originsẽ "không đẩy bất kỳ thứ gì (lỗi ra ngoài)" theo man git-config. Nhưng các push.defaultcài đặt khác có các hành vi khác. Tìm kiếm push.defaulttrong man git-config. Cũng tìm kiếm "Khi dòng lệnh không chỉ định vị trí cần đẩy" và "Khi dòng lệnh không chỉ định cái gì cần đẩy" trong phần mô tả ở đầu man git-push(đó là man git-push, không phải man git-config).
David Winiecki
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.