Nếu bạn có thể đẩy trực tiếp nhánh của người đóng góp (mà tôi nhận được từ giả định rằng https://github.com/otheruser/myrepo.git
là ngã ba và origin
là người đóng góp của bạn), thì lý do chỉnh sửa không hiển thị trong yêu cầu kéo từ ngã ba của bạn nguồn gốc là bạn đang đẩy các thay đổi trực tiếp, do đó phá vỡ quy trình yêu cầu kéo.
Để giải thích: Khi bạn mở ra một yêu cầu kéo từ ngã ba của bạn chống lại ngã ba của bạn bè và họ sáp nhập nó, nghĩa là tương đương với của họ đã thực hiện
git fetch <your-fork> master
git merge <your-fork>/master
hoặc
git pull <your-fork> master
tiếp theo
git push <their-fork> master
Nếu bạn chỉ cần tiếp tục và đẩy tới <their-fork>
, trong trường hợp này là nguồn gốc, sau đó bạn đã cơ bản đã thực hiện những gì yêu cầu kéo sẽ làm. Ngoài ra, khi bạn đẩy đến <their-fork>
thay vì <your-fork>
sau khi sửa các xung đột hợp nhất, github sẽ thấy chính xác cùng một xung đột xung đột như trước trong yêu cầu kéo vì <your-fork>
chưa được cập nhật, vì vậy bây giờ bạn đã hợp nhất xung đột với phiên bản "cố định". Khi quá trình PR bị phá vỡ, git không có ý tưởng gì, nhưng git HUB rất khó hiểu (yêu cầu kéo là hoàn toàn dựa trên github - không có khái niệm "yêu cầu kéo" trong chính git).
Cách đơn giản nhất để khắc phục điều này là chỉ cần đóng PR mở, vì bạn đã cơ bản hợp nhất nó. Tuy nhiên, nếu bạn muốn giữ các công việc theo yêu cầu kéo, bạn có thể lấy chi nhánh tổng thể của bạn bè, làm một
git reset --hard
trước khi bạn đẩy lên nó, và sau đó
git checkout -b tmp
git cherry-pick otheruserbranch <list-of-commits-you-made>
git checkout master
git merge tmp
git push <your-fork> master
đó sẽ nhận được PR của bạn trở lại trông như bạn muốn nó (bạn có thể phải thực hiện một số điều chỉnh ở đó, tôi không phải là siêu rõ ràng về cấu trúc chi nhánh của bạn, nhưng đó là ý chính)
LƯU Ý: nhìn here cho các tài liệu trên git reset
và chắc chắn rằng bạn hiểu hậu quả của việc đặt lại khó trước khi sử dụng.
Điểm gốc xuất phát điểm nào? Bạn có chắc là bạn đang đẩy xung đột cố định vào ngã ba người dùng không? Nếu tôi không sai, bạn đang đẩy các tệp đã hợp nhất vào repo gốc. –
Bạn cần gửi Yêu cầu kéo đến repo của người dùng đó. Hoặc người nào khác bạn cần phải làm cho mình như là đóng góp cho repo của mình, do đó bạn có thể đẩy vào repo của mình trực tiếp. – uday
Bạn có thể đăng đầu ra bàn điều khiển khi bạn chạy lệnh 'git push origin otherusersbranch'? – Mike