Pertanyaan Buat cabang Git yang ada melacak cabang jarak jauh?


Saya tahu cara membuat cabang baru yang melacak cabang-cabang terpencil, tetapi bagaimana cara membuat cabang yang ada melacak cabang jarak jauh?

Saya tahu saya bisa mengedit .git/config file, tetapi tampaknya harus ada cara yang lebih mudah.


3074
2018-02-06 15:14


asal


Jawaban:


Diberikan sebuah cabang foo dan remote upstream:

Mulai dari Git 1.8.0:

git branch -u upstream/foo

Atau, jika cabang lokal foo bukan cabang saat ini:

git branch -u upstream/foo foo

Atau, jika Anda ingin mengetikkan perintah yang lebih panjang, ini sama dengan dua di atas:

git branch --set-upstream-to=upstream/foo

git branch --set-upstream-to=upstream/foo foo

Mulai dari Git 1.7.0:

git branch --set-upstream foo upstream/foo

Catatan:

Semua perintah di atas akan menyebabkan cabang lokal foo untuk melacak cabang jarak jauh foo dari jarak jauh upstream. Sintaks lama (1.7.x) tidak lagi digunakan karena sintaks baru (1.8+). Sintaks yang baru dimaksudkan agar lebih intuitif dan mudah diingat.


Lihat juga: Mengapa saya harus melakukan `--set-upstream` sepanjang waktu?


3745
2018-02-18 03:06



Anda dapat melakukan hal-hal berikut (dengan asumsi Anda diperiksa di master dan ingin mendorong ke master cabang jarak jauh):

Siapkan 'remote' jika Anda belum memilikinya

git remote add origin ssh://...

Sekarang konfigurasikan master untuk mengetahui melacak:

git config branch.master.remote origin
git config branch.master.merge refs/heads/master

Dan dorong:

git push origin master

206
2018-03-09 08:50



Saya melakukan ini sebagai efek samping dari mendorong dengan -u pilihan seperti pada

$ git push -u origin branch-name

Opsi panjang yang setara adalah --set-upstream.

Itu git-branch perintah juga mengerti --set-upstream, tetapi penggunaannya dapat membingungkan. Versi 1.8.0 memodifikasi antarmuka.

git branch --set-upstream tidak lagi digunakan dan dapat dihapus dalam waktu yang relatif jauh. git branch [-u|--set-upstream-to] telah diperkenalkan dengan urutan argumen yang lebih waras.

...

Itu sangat menggoda untuk dikatakan git branch --set-upstream origin/master, tetapi itu memberitahu Git untuk mengatur "asal / master" cabang lokal untuk berintegrasi dengan cabang yang saat ini diperiksa, yang sangat tidak mungkin apa yang dimaksud pengguna. Pilihan sudah ditinggalkan; gunakan yang baru --set-upstream-to (dengan yang pendek dan manis -u) sebagai gantinya.

Katakanlah Anda memiliki lokal foo cabang dan ingin memperlakukan cabang dengan nama yang sama dengan hulu. Jadikan ini terjadi

$ git branch foo
$ git branch --set-upstream-to=origin/foo

atau hanya

$ git branch --set-upstream-to=origin/foo foo

130
2017-10-02 16:24



Anda mungkin menemukan git_remote_branch alat yang berguna. Ini menawarkan perintah sederhana untuk membuat, menerbitkan, menghapus, melacak & mengganti nama cabang jarak jauh. Salah satu fitur yang bagus adalah Anda dapat meminta grb perintah untuk menjelaskan perintah git apa yang akan dieksekusi.

grb explain create my_branch github
# git_remote_branch version 0.3.0

# List of operations to do to create a new remote branch and track it locally:
git push github master:refs/heads/my_branch
git fetch github
git branch --track my_branch github/my_branch
git checkout my_branch

51
2018-02-06 17:11



Sebenarnya untuk jawaban yang diterima untuk bekerja:

git remote add upstream <remote-url>
git fetch upstream
git branch -f --track qa upstream/qa
# OR:
git branch --set-upstream qa upstream/qa

49
2017-11-23 12:08



Saya percaya bahwa sedini Git 1.5.x Anda bisa membuat cabang lokal $BRANCH lacak cabang jarak jauh origin/$BRANCH, seperti ini.

Mengingat bahwa $BRANCH dan origin/$BRANCH ada, dan Anda belum check-out $BRANCH (beralihlah jika Anda punya), lakukan:

git branch -f --track $BRANCH origin/$BRANCH

Ini menciptakan kembali $BRANCH sebagai cabang pelacakan. Itu -f memaksa penciptaan $BRANCH sudah ada. --track adalah opsional jika default yang biasa ada (yaitu, parameter git-config branch.autosetupmerge adalah benar).

Perhatikan, jika origin/$BRANCH belum ada, Anda dapat membuatnya dengan mendorong lokal Anda $BRANCH ke repositori jarak jauh dengan:

git push origin $BRANCH

Diikuti oleh perintah sebelumnya untuk mempromosikan cabang lokal ke dalam cabang pelacakan.


40
2017-07-28 09:33



1- perbarui meta data lokal Anda menggunakan: git fetch --all

enter image description here

2- tunjukkan cabang jarak jauh dan lokal Anda menggunakan: cabang git -a , lihat Screenshot berikut

enter image description here

3- beralih ke cabang target, yang ingin Anda kaitkan dengan remote: menggunakan

git checkout branchName

contoh:

enter image description here 

4- Tautkan cabang lokal Anda ke cabang jarak jauh menggunakan:

git branch --set-upstream-to nameOfRemoteBranch

N.B: nameOfRemoteBranch : untuk menyalin dari output langkah 2 "git branch -r"

Contoh penggunaan:

enter image description here


28
2018-06-06 14:21