Câu trả lời là ở đó, git yêu cầu bạn tìm nạp trước.
Có thể ai đó đã thúc đẩy để làm chủ rồi, và cam kết của bạn đang ở phía sau. Do đó, bạn phải tìm nạp, hợp nhất tập thay đổi, và sau đó bạn sẽ có thể đẩy lại.
Nếu bạn không (hoặc thậm chí tệ hơn, nếu bạn buộc nó bằng cách sử dụng --force
tùy chọn), bạn có thể làm rối tung lịch sử cam kết.
CHỈNH SỬA: Tôi đi vào chi tiết hơn về điểm cuối cùng, vì một anh chàng ở đây vừa đưa ra Lời khuyên Rất tồi về việc sử dụng --force
tùy chọn.
Vì git là một DVCS, lý tưởng nhất là nhiều nhà phát triển khác đang làm việc trên cùng một dự án với bạn, sử dụng cùng một kho lưu trữ (hoặc một nhánh của nó). Nếu bạn ghi đè mạnh mẽ tập thay đổi của mình, kho lưu trữ của bạn sẽ không khớp với người khác, bởi vì "bạn đã viết lại lịch sử". Bạn sẽ làm cho người khác không hài lòng và kho lưu trữ sẽ đau khổ. Có lẽ một con mèo con trên thế giới cũng sẽ khóc.
TL; DR
- Nếu bạn muốn giải quyết, hãy tìm nạp trước (và sau đó hợp nhất).
- Nếu bạn muốn hack, hãy sử dụng
--force
tùy chọn.
Tuy nhiên, bạn đã yêu cầu cái trước. Đi cho 1) luôn luôn, ngay cả khi bạn sẽ luôn sử dụng git một mình, bởi vì đó là một thực hành tốt.