Là một SCM phân tán, git phân biệt giữa các khái niệm 'tạo ảnh chụp nhanh của bản sao làm việc' (cam kết) và 'kho lưu trữ đồng bộ hóa' (đẩy / kéo / tìm nạp).
Nếu bạn chỉ có một bản sao cục bộ của kho lưu trữ của mình, thì nó không có ý nghĩa gì để đẩy. Tuy nhiên, với github, bạn làm có một bản sao (phần trên github), và đẩy những thay đổi của bạn có có ít nhất một lợi thế: sao lưu. Nếu máy tính của bạn chết, bạn vẫn có mọi thứ được đẩy cho đến nay trên github.
Tất nhiên, đó không phải là mục đích chính của github; github được dùng để chia sẻ mã, vì vậy nếu dự án của bạn nằm trên github, bạn có thể cho phép người khác lấy từ đó, sao chép dự án của bạn, thực hiện các yêu cầu kéo từ bản sao của họ hoặc thậm chí cho người khác tin cậy đẩy quyền truy cập vào kho lưu trữ của bạn.
Một lý do khác để thúc đẩy là nếu bạn sử dụng một số bản sao địa phương. Điều này có thể hữu ích cho nhiều thứ khác nhau: ví dụ: bạn có thể muốn làm việc trên hai nhánh khác nhau cùng một lúc hoặc bạn có thể muốn thử các hoạt động có thể phá hủy trên kho lưu trữ của mình; nếu tất cả đều hoạt động như dự định, bạn giữ bản sao đã sửa đổi (hoặc đẩy các thay đổi của bạn trở lại bản gốc), nhưng nếu mọi thứ đi về phía nam, bạn có thể xóa bản sao đã bị rối và quay lại bản gốc (vẫn không thay đổi) .
Một số người thậm chí sử dụng git để triển khai: phiên bản sản xuất cũng là git repo và cập nhật lên phiên bản mới hơn là vấn đề tìm nạp và kiểm tra (rõ ràng, điều này chỉ hoạt động nếu bạn không cần bước xây dựng). Tôi không nhất thiết phải giới thiệu nó cho những thứ nghiêm trọng, nhưng đối với những việc nhỏ thì đó là một giải pháp đơn giản và thực dụng.