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=1
tù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 origin
và upstream
nế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/aBranch
phần.
Và sau đó bạn có thể hợp nhất anotherLocalBranch
với nó (đến myBranch
).
aLocalBranch
" với " myBranch
", với " myBranch
" đại diện cho một chi nhánh từ xa origin/aBranch
.
aLocalBranch
khô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 develop
tiế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-branch
git branch --set-upstream-to=origin/remote-branch new-local-branch
git checkout new-local-branch
git pull
Nế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.0
không hoạt động nhưng rep_mirror/8.0
không.
Vì vậy, một lệnh như git merge -m "my msg" rep_mirror/8.0
là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)