Kịch bản:Git nói chi nhánh địa phương là đằng sau chi nhánh ở xa, nhưng nó không phải
- tôi thực hiện một chi nhánh mới
- Hack vào nó
- cam kết nó
- đẩy nó
- hack vào nó một số chi tiết
- cam kết lại
- cố gắng đẩy một lần nữa
Git đáp ứng:
cập nhật đã bị từ chối vì là đỉnh của chi nhánh hiện tại của bạn là đằng sau đối tác từ xa của nó. v.v.
Tôi là người duy nhất xâm nhập vào nhánh này - không ai khác đang chạm vào nó. Chi nhánh từ xa thực tế là phía sau chi nhánh địa phương. Tôi không cần phải kéo cả.
(Và nếu tôi kéo, Git báo cáo mâu thuẫn giữa hai, và buộc tôi để hợp nhất các chi nhánh vào bản thân)
Tại sao điều này (khả năng) xảy ra? Và làm thế nào tôi có thể chẩn đoán/sửa chữa nó?
Để được rõ ràng, tôi không phân nhánh ở bất cứ đâ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à một sự tiếp nối thẳng của B, không thành lập chi nhánh liên quan. Nhưng git nghĩ C là chi nhánh của A:
Remote: Commit A -------- Commit B
------- Commit C
/
Local: Commit A -------- Commit B
Nó không phải; đó là sự tiếp tục liên tục của B.
Sản lượng của 'git remote -v' và 'git chương origin' từ xa (giả sử nguồn gốc là từ xa mà bạn đang gặp rắc rối với) có thể là hữu ích –