Apa yang dilakukan '--set-upstream'?

327

Apa yang git --set-upstreamlakukan?

Saya mencoba memahaminya dengan membaca manual git , tetapi saya tidak mengerti.

Евгений Масленков
sumber
13
Ada opsi baru --set-upstream-toyang diperkenalkan karena kebingungan (IIRC) pada set-upstream.
Philip Oakley

Jawaban:

411
git branch --set-upstream <remote-branch>

mengatur cabang jarak jauh default untuk cabang lokal saat ini.

git pullPerintah apa pun di masa mendatang (dengan cabang lokal saat ini dicentang),
akan berusaha untuk membawa komitmen dari <remote-branch>ke cabang lokal saat ini.


Salah satu cara untuk menghindari keharusan mengetik secara eksplisit --set-upstreamadalah menggunakan flag steno -usebagai berikut:

git push -u origin local-branch

Ini mengatur asosiasi upstream untuk setiap upaya push / pull di masa depan secara otomatis.
Untuk detail lebih lanjut, cek penjelasan rinci ini tentang cabang dan pelacakan hulu .


Untuk menghindari kebingungan, versi terbaru dari gitpenghentian --set-upstreamopsi yang agak ambigu ini mendukung opsi yang lebih verbose --set-upstream-todengan sintaks dan perilaku yang identik

git branch --set-upstream-to <origin/remote-branch>
TheCodeArtist
sumber
7
Bendera --set-upstream sudah usang dan akan dihapus. Pertimbangkan untuk menggunakan --track atau --set-upstream-to
Rohit Singh Sengar
1
dalam perintah git push -u origin local-branchini originmewakili apa? Apakah ada kasus di mana saya akan mengetik apa pun selain originsetelah -u?
John Henckel
2
@JohnHenckel originmerujuk ke repositori git remote yang digunakan untuk mengkloning. Mungkin ada beberapa repositori git jarak jauh . Dalam kasus seperti itu, origindapat diganti dengan nama yang tepat dari remote yang diinginkan yang ingin dirujuk.
TheCodeArtist
lakukan git remote -vuntuk menemukan remote Anda, yang default originbiasanya
xploreraj
39

Saat Anda mendorong ke suatu remote dan Anda menggunakan --set-upstreamflag git mengatur cabang yang Anda dorong sebagai cabang pelacak jarak jauh dari cabang yang Anda dorong.

Menambahkan cabang pelacakan jarak jauh berarti git yang kemudian tahu apa yang ingin Anda lakukan ketika Anda git fetch, git pullatau git pushdi masa depan. Diasumsikan bahwa Anda ingin menjaga cabang lokal dan cabang jarak jauh yang dilacaknya sinkron dan melakukan hal yang tepat untuk mencapai ini.

Anda dapat mencapai hal yang sama dengan git branch --set-upstream-toatau git checkout --track. Lihat halaman bantuan git pada pelacakan cabang untuk informasi lebih lanjut.

Akan
sumber
Ketika saya checkout dengan -t itu mengatur upstream untuk mendorong, hanya untuk menarik.
Jim
8

git branch --set-upstream <<origin/branch>> secara resmi tidak didukung lagi dan digantikan oleh git branch --set-upstream-to <<origin/branch>>

Turbut Alin
sumber