Lựa chọn tốt nhất
Có lẽ cách sạch nhất, ít gây nhầm lẫn và an toàn nhất để đẩy vào kho lưu trữ từ xa không trống của bạn, là đẩy đến các nhánh chuyên dụng trong điều khiển từ xa đại diện cho các nhánh máy tính xách tay của bạn.
Hãy xem xét trường hợp đơn giản nhất và giả sử bạn chỉ có một nhánh trong mỗi repo: master. Khi bạn đẩy đến repo từ xa từ máy tính xách tay của bạn, thay vì đẩy master -> master, đẩy master -> laptop-master (hoặc một tên tương tự). Bằng cách này, việc đẩy không ảnh hưởng đến nhánh chính hiện đang được kiểm tra trong repo từ xa. Để làm điều này từ máy tính xách tay, lệnh khá đơn giản:
git push origin master:laptop-master
Điều này có nghĩa là nhánh chính cục bộ sẽ được đẩy đến nhánh có tên là "laptop-master" trong kho lưu trữ từ xa. Trong repo từ xa của bạn, bạn sẽ có một chi nhánh mới có tên là "laptop-master" mà sau đó bạn có thể hợp nhất vào chủ từ xa khi bạn sẵn sàng.
Lựa chọn thay thế
Bạn cũng có thể chỉ cần đẩy master -> master, nhưng việc đẩy sang nhánh thanh toán hiện tại của một repo không trần thường không được khuyến khích, bởi vì nó có thể gây nhầm lẫn nếu bạn không hiểu chuyện gì đang xảy ra. Điều này là do việc đẩy sang một nhánh thanh toán không cập nhật cây công việc, do đó, việc kiểm tra git status
trong nhánh thanh toán bị đẩy vào sẽ cho thấy chính xác những khác biệt ngược lại như những gì được đẩy gần đây nhất. Sẽ rất khó hiểu nếu cây công việc bị bẩn trước khi thực hiện việc đẩy, đó là một lý do lớn tại sao điều này không được khuyến khích.
Nếu bạn muốn thử chỉ cần đẩy master -> master, thì lệnh chỉ là:
git push origin
Nhưng khi bạn quay lại repo từ xa, rất có thể bạn sẽ muốn thực hiện git reset --hard HEAD
để có được cây công việc đồng bộ với nội dung được đẩy. Điều này có thể nguy hiểm , bởi vì nếu có bất kỳ sự cam kết nào thay đổi nào trong cây làm việc từ xa mà bạn muốn giữ thì nó sẽ xóa sạch chúng. Hãy chắc chắn rằng bạn biết hậu quả của việc này là gì trước khi bạn thử nó, hoặc ít nhất là tạo bản sao lưu trước!
EDIT Kể từ Git 2.3, bạn có thể sử dụng git đẩy "đẩy để triển khai": https://github.com/blog/1957-git-2-3-has-been-release . Nhưng đẩy sang một nhánh riêng biệt và sau đó hợp nhất thường tốt hơn vì nó hợp nhất thực sự (do đó hoạt động với các thay đổi không được cam kết giống như hợp nhất).