Tình huống:
- Tôi tạo một chi nhánh mới
- hack vào nó
- cam kết nó
- đẩy nó
- hack vào nó một số nữa
- cam kết một lần nữa
- cố gắng đẩy một lần nữa
Git trả lời:
Các bản cập nhật đã bị từ chối vì phần ngọn của chi nhánh hiện tại của bạn nằm sau phần đối tác từ xa của nó. Vân vân.
Tôi là người duy nhất hack vào nhánh này - không ai khác chạm vào nó. Chi nhánh từ xa thực sự nằm sau chi nhánh cục bộ. Tôi không cần phải kéo chút nào.
(Và nếu tôi kéo, Git báo cáo xung đột giữa cả hai và buộc tôi phải hợp nhất nhánh vào chính nó)
Tại sao điều này (có thể) xảy ra? Và làm thế nào tôi có thể chẩn đoán / sửa chữa nó?
Để rõ ràng, tôi không phân nhánh ở đâu và không ai khác đang làm việc trên nó:
Remote: Commit A -------- Commit B
Local: Commit A -------- Commit B -------- Commit C
C là đoạn thẳng tiếp nối B, không phân nhánh. Nhưng git cho rằng C là một nhánh của A:
Remote: Commit A -------- Commit B
------- Commit C
/
Local: Commit A -------- Commit B
Nó không thể; nó là sự tiếp nối thẳng của B.
git remote -v
vàgit show remote origin
(giả sử nguồn gốc là từ xa mà bạn đang gặp rắc rối với) có thể hữu ích