Jawaban:
Anda dapat merujuk cabang-cabang pelacakan jarak jauh ~ (terdaftar dengan git branch -r
) dengan nama jarak jauh mereka.
Anda perlu mengambil cabang jarak jauh:
git fetch origin aRemoteBranch
Jika Anda ingin menggabungkan salah satu cabang jarak jauh di cabang lokal Anda:
git checkout master
git merge origin/aRemoteBranch
Catatan 1: Untuk repo besar dengan riwayat panjang, Anda akan ingin menambahkan --depth=1
opsi saat Anda menggunakannya git fetch
.
Catatan 2: Perintah-perintah ini juga bekerja dengan repo jarak jauh lain sehingga Anda dapat mengatur origin
dan upstream
jika Anda sedang mengerjakan garpu.
Skenario yang berlawanan: Jika Anda ingin menggabungkan salah satu cabang lokal Anda pada cabang jarak jauh (berbeda dengan cabang jarak jauh ke cabang lokal, seperti yang ditunjukkan di atas), Anda perlu membuat cabang lokal baru di atas cabang jarak jauh yang disebutkan terlebih dahulu:
git checkout -b myBranch origin/aBranch
git merge anotherLocalBranch
Idenya di sini, adalah untuk menggabungkan "salah satu cabang lokal Anda" (di sini anotherLocalBranch
) ke cabang jauh ( origin/aBranch
).
Untuk itu, Anda buat " myBranch
" pertama sebagai mewakili cabang jarak jauh itu: itulah git checkout -b myBranch origin/aBranch
bagiannya.
Dan kemudian Anda bisa bergabung anotherLocalBranch
dengannya myBranch
.
aLocalBranch
" menjadi " myBranch
", dengan " myBranch
" mewakili cabang jarak jauh origin/aBranch
.
aLocalBranch
itu bukan kesalahan ketik, tetapi Anda menyetujui suntingan terakhir (2 tahun kemudian!) Yang mengoreksi "kemungkinan kesalahan ketik" ini. Saya ingin memeriksa dengan Anda sebelum membatalkan pengeditan.
Setiap kali saya melakukan penggabungan, saya masuk ke cabang yang ingin saya gabungkan (misalnya " git checkout branch-i-am-working-in
") dan kemudian lakukan hal berikut:
git merge origin/branch-i-want-to-merge-from
git fetch origin/branch-i-want-to-merge-from
pertama, bukan?
git fetch origin develop
diikuti olehgit merge origin/develop
git merge
sendirian tidak akan melakukannya.
git add .
-> git commit -m <message>
-> git push -u origin <branch>
?
Ambil cabang jarak jauh dari asal terlebih dahulu.
git fetch origin remote_branch_name
Gabungkan cabang jarak jauh ke cabang lokal
git merge origin/remote_branch_name
Mungkin Anda ingin melacak cabang jarak jauh dengan cabang lokal:
git branch new-local-branch
git branch --set-upstream-to=origin/remote-branch new-local-branch
git checkout new-local-branch
git pull
Jika Anda sudah mengambil cabang jarak jauh dan melakukannya git branch -a
,
Anda mendapatkan sesuatu seperti:
* 8.0
xxx
remotes/origin/xxx
remotes/origin/8.0
remotes/origin/HEAD -> origin/8.0
remotes/rep_mirror/8.0
Setelah itu, Anda dapat menggunakan rep_mirror/8.0
untuk menunjuk secara lokal cabang jauh Anda.
Kuncinya adalah itu remotes/rep_mirror/8.0
tidak berhasil tetapi rep_mirror/8.0
tidak.
Jadi, perintah seperti git merge -m "my msg" rep_mirror/8.0
do the merge.
(catatan: ini adalah komentar untuk jawaban @VonC. Saya meletakkannya sebagai jawaban lain karena blok kode tidak cocok dengan format komentar)