Saya sudah mendapatkan cabang master lokal yang melacak cabang master jarak jauh dari proyek github. Sekarang, kolaborator saya telah membuat cabang baru di proyek yang sama, dan saya ingin melakukan hal berikut sesuai:
- buat cabang baru secara lokal
- buat cabang baru ini melacak cabang jarak jauh yang baru dibuat.
Bagaimana saya melakukannya dengan benar?
git
github
git-branch
MLister
sumber
sumber
git checkout -t <remote>/<whatever>
. Jika hanya ada satu cabang pelacak jarak jauh yang berakhir di<whatever>
Anda bahkan bisa melakukangit checkout <whatever>
dan git menebak apa yang Anda maksud.Jawaban:
Perintah pertama memastikan Anda memiliki cabang jarak jauh di repositori lokal. Perintah kedua membuat cabang lokal yang melacak cabang jarak jauh. Diasumsikan bahwa nama jarak jauh Anda
origin
dan nama cabang adalahbranch-name
.--track
Opsi ini diaktifkan secara default untuk cabang jarak jauh dan Anda dapat menghilangkannya.sumber
git checkout <branchname>
dan git akan secara otomatis memeriksanya dan mengatur cabang pelacakan. Hanya ingin mengulangi apa yang dikatakan @Mark Longair di atas dalam komentar ini: stackoverflow.com/questions/11262703/… .remotes/origin/develop
? Bukankah seharusnya begituorigin/develop
? Apakah ini sama?git fetch --all
, kalau tidak cabang-cabang baru tidak akan diambilcmd
, gerhana mendeteksi cabang baru?Jika Anda tidak memiliki cabang lokal yang ada, itu benar-benar sesederhana:
Misalnya jika Anda mengambil dan ada cabang pelacakan jarak jauh baru yang disebut
origin/feature/Main_Page
, lakukan saja ini:Ini membuat cabang lokal dengan nama yang sama dengan cabang jarak jauh, melacak cabang jarak jauh itu. Jika Anda memiliki beberapa remote dengan nama cabang yang sama, Anda dapat menggunakan yang kurang ambigu:
Jika Anda sudah membuat cabang lokal dan tidak ingin menghapusnya, lihat Bagaimana Anda membuat cabang Git yang ada melacak cabang jarak jauh? .
sumber
git checkout 1.5-branch
(remotes/upstream/1.5-branch
dalam output ofgit branch -a
) hasil dalamerror: pathspec '1.5-branch' did not match any file(s) known to git.
Mengubah ini untukgit checkout upstream/1.5-branch
hasil dalam KEPALA terlepas dan tidak ada cabang lokal dibuat. Saya pikir ini bagian dari jawaban yang salah. Ini dengan git 2.4.3<remote>/<branch>
. Cabang pelacakan jarak jauh hanya baca, yang menunjukkan di mana cabang itu berada pada jarak jauh pada pengambilan terakhir. Memanggilcheckout
ref cabang itu menempatkan Anda dalam mode HEAD yang terpisah, seperti yang dikatakan Piotr. Perhatikan bahwa menentukan cabang jarak jauh untuk diambil akan menghindari membuat cabang pelacakan jarak jauh yang tidak diinginkan.git checkout feature-branch
. Saya TIDAK menyarankan menggunakan perintahgit checkout origin/feature-branch
yang, seperti yang telah Anda berdua tunjukkan, akan menghasilkan kepala terpisah yang tidak membantu.Pertama-tama Anda harus mengambil repositori jarak jauh:
Daripada Anda dapat membuat cabang baru dan mengaturnya untuk melacak cabang jarak jauh yang Anda inginkan:
Anda juga dapat menggunakan "git branch --track" alih-alih "git checkout -b" seperti yang ditentukan.
sumber
checkout -b
menggunakan cabang jarak jauh sebagai titik awal, maka sebenarnya tidak perlu untuk kemudian digunakan--track
.git checkout <branchname>
, dan ada cabang jarak jauh dengan nama yang sama (setelah Anda melakukangit fetch
), maka cabang lokal akan secara otomatis diatur untuk melacak yang jarak jauh.Ketika cabang bukan cabang jarak jauh, Anda bisa mendorong cabang lokal Anda langsung ke jarak jauh.
atau ketika Anda memiliki cabang dev
atau ketika cabang jarak jauh ada
Ada beberapa posibilites lain untuk mendorong cabang jauh.
sumber