GitHub có một phần hay gọi là " Xử lý các lỗi không chuyển tiếp nhanh chóng "
Lỗi này có thể là một chút áp đảo lúc đầu, đừng sợ.
Nói một cách đơn giản, git không thể thực hiện thay đổi trên điều khiển từ xa mà không mất các cam kết, vì vậy nó từ chối việc đẩy .
Thông thường, điều này được gây ra bởi một người dùng khác đẩy đến cùng một chi nhánh. Bạn có thể khắc phục điều này bằng cách tìm nạp và hợp nhất nhánh từ xa hoặc sử dụng pull để thực hiện cả hai cùng một lúc.
Trong các trường hợp khác, lỗi này là kết quả của các thay đổi mang tính hủy diệt được thực hiện cục bộ bằng cách sử dụng các lệnh như git commit --amend
hoặc git rebase
.
Mặc dù bạn có thể ghi đè từ xa bằng cách thêm --force
vào push
lệnh, bạn chỉ nên làm như vậy nếu bạn hoàn toàn chắc chắn đây là điều bạn muốn làm.
Lực đẩy có thể gây ra sự cố cho những người dùng khác đã tải xuống chi nhánh từ xa và bị coi là hành vi xấu. Khi nghi ngờ, đừng ép buộc .
Git không thể thực hiện các thay đổi trên điều khiển từ xa như hợp nhất chuyển tiếp nhanh, mà Tham chiếu Visual Git minh họa như:
Đây không phải là trường hợp chính xác của bạn, nhưng giúp xem "chuyển tiếp nhanh" là gì (trong đó HEAD
chi nhánh đơn giản được chuyển sang một cam kết mới gần đây hơn).
" branch master->master (non-fast-forward) Already-up-to-date
" Thường dành cho các chi nhánh địa phương không theo dõi bộ phận từ xa của họ.
Ví dụ, xem câu hỏi SO này " git pull nói cập nhật nhưng git đẩy từ chối không chuyển tiếp nhanh ".
Hoặc hai chi nhánh được kết nối, nhưng không đồng ý với lịch sử tương ứng của họ:
Xem " Câu chuyện GIT không bao giờ kết thúc - tôi đang làm gì sai ở đây? "
Điều này có nghĩa là nhánh lật đổ của bạn và nhánh git master từ xa của bạn không đồng ý về điều gì đó.
Một số thay đổi đã được đẩy / cam kết với cái không phải là cái khác.
Hãy bùng cháy gitk --all
, và nó sẽ cho bạn manh mối về những gì đã sai - hãy tìm "dĩa" trong lịch sử.