Nhưng tôi gặp lỗi "! [Bị từ chối]" và một vài điều về "không nhanh chóng chuyển tiếp"
Đó là bởi vì Git không thể hợp nhất các thay đổi từ các nhánh thành chủ hiện tại của bạn. Giả sử bạn đã kiểm tra chi nhánh master
và bạn muốn hợp nhất trong chi nhánh từ xa other-branch
. Khi bạn làm điều này:
$ git pull origin other-branch
Git về cơ bản đang làm điều này:
$ git fetch origin other-branch && git merge other-branch
Đó là, a pull
chỉ là một fetch
theo sau bởi a merge
. Tuy nhiên, khi pull
-ing, Git sẽ chỉ hợp nhất other-branch
nếu nó có thể thực hiện hợp nhất chuyển tiếp nhanh . Một nhanh về phía trước hợp nhất là một kết hợp trong đó người đứng đầu chi nhánh bạn đang cố gắng để kết hợp vào là một hậu duệ trực tiếp của người đứng đầu chi nhánh bạn muốn kết hợp. Ví dụ: nếu bạn có cây lịch sử này, thì việc hợp nhất other-branch
sẽ dẫn đến hợp nhất chuyển tiếp nhanh:
O-O-O-O-O-O
^ ^
master other-branch
Tuy nhiên, đây không phải là một sự hợp nhất nhanh chóng:
v master
O-O-O
\
\-O-O-O-O
^ other-branch
Để giải quyết vấn đề của bạn, trước tiên hãy tìm nạp chi nhánh từ xa:
$ git fetch origin other-branch
Sau đó, hợp nhất nó vào chi nhánh hiện tại của bạn (tôi sẽ cho rằng đó master
) và khắc phục mọi xung đột hợp nhất:
$ git merge origin/other-branch
# Fix merge conflicts, if they occur
# Add merge conflict fixes
$ git commit # And commit the merge!