Câu trả lời:
Bạn có thể tham chiếu các nhánh theo dõi từ xa ~ (được liệt kê với git branch -r) với tên của điều khiển từ xa của chúng.
Bạn cần tìm nạp chi nhánh từ xa:
git fetch origin aRemoteBranch
Nếu bạn muốn hợp nhất một trong những nhánh từ xa đó trên nhánh cục bộ của bạn:
git checkout master
git merge origin/aRemoteBranch
Lưu ý 1: Đối với một repo lớn có lịch sử lâu dài, bạn sẽ muốn thêm --depth=1tùy chọn khi bạn sử dụng git fetch.
Lưu ý 2: Các lệnh này cũng hoạt động với các repos từ xa khác để bạn có thể thiết lập originvà upstreamnếu bạn đang làm việc trên một ngã ba.
Kịch bản đối diện: Nếu bạn muốn hợp nhất một trong các nhánh cục bộ của mình trên một nhánh từ xa (trái ngược với một nhánh từ xa với một nhánh cục bộ, như được hiển thị ở trên), trước tiên bạn cần tạo một nhánh cục bộ mới trên đầu nhánh từ xa đã nói:
git checkout -b myBranch origin/aBranch
git merge anotherLocalBranch
Ý tưởng ở đây là hợp nhất "một trong những chi nhánh địa phương của bạn" (ở đây anotherLocalBranch) với một chi nhánh từ xa ( origin/aBranch).
Vì thế, bạn tạo "" đầu tiên myBranchđể thể hiện nhánh từ xa đó: đó là git checkout -b myBranch origin/aBranchphần.
Và sau đó bạn có thể hợp nhất anotherLocalBranchvới nó (đến myBranch).
aLocalBranch" với " myBranch", với " myBranch" đại diện cho một chi nhánh từ xa origin/aBranch.
aLocalBranchkhông phải là một lỗi đánh máy, nhưng bạn đã chấp thuận bản chỉnh sửa mới nhất (2 năm sau!) Sửa lỗi "lỗi đánh máy có thể xảy ra" này. Tôi muốn kiểm tra với bạn trước khi hoàn tác chỉnh sửa.
Bất cứ khi nào tôi thực hiện hợp nhất, tôi vào chi nhánh mà tôi muốn hợp nhất vào (ví dụ " git checkout branch-i-am-working-in") và sau đó thực hiện như sau:
git merge origin/branch-i-want-to-merge-from
git fetch origin/branch-i-want-to-merge-fromđầu tiên, phải không?
git fetch origin developtiếp theogit merge origin/develop
git merge một mình sẽ không làm điều đó.
git add .-> git commit -m <message>-> git push -u origin <branch>?
Lấy nhánh từ xa từ gốc.
git fetch origin remote_branch_name
Hợp nhất chi nhánh từ xa với chi nhánh địa phương
git merge origin/remote_branch_name
Có thể bạn muốn theo dõi chi nhánh từ xa với một chi nhánh địa phương:
git branch new-local-branchgit branch --set-upstream-to=origin/remote-branch new-local-branchgit checkout new-local-branchgit pullNếu bạn đã lấy chi nhánh từ xa của mình và làm git branch -a,
bạn sẽ có được một cái gì đó như:
* 8.0
xxx
remotes/origin/xxx
remotes/origin/8.0
remotes/origin/HEAD -> origin/8.0
remotes/rep_mirror/8.0
Sau đó, bạn có thể sử dụng rep_mirror/8.0để chỉ định cục bộ chi nhánh từ xa của bạn.
Bí quyết là remotes/rep_mirror/8.0không hoạt động nhưng rep_mirror/8.0không.
Vì vậy, một lệnh như git merge -m "my msg" rep_mirror/8.0làm hợp nhất.
(lưu ý: đây là một nhận xét cho câu trả lời @VonC. Tôi đặt nó làm câu trả lời khác vì các khối mã không phù hợp với định dạng nhận xét)