Magit - Bagaimana saya bisa checkout cabang jauh secara lokal tanpa mengetikkan seluruh nama cabang?

12

Saya memiliki cabang terpencil remote-branch-long-name. Ketika saya magit checkout dengan helm selesai saya bisa mengetik remote-branchdan origin/remote-branch-long-nameakan muncul sebagai opsi. Masalahnya adalah untuk checkout cabang ini secara lokal, saya sebenarnya tidak bisa beralih ke cabang itu, saya perlu beralih ke remote-branch-long-name (without the origin/ prefix), karena helm tidak menyediakan itu sebagai opsi penyelesaian, saya harus mengetikkan seluruh nama cabang secara manual.

Apakah ada fungsi lain yang harus saya gunakan untuk use case ini atau apakah saya harus meretas suatu fungsi bersama?

tidak teratur
sumber

Jawaban:

22

Sepertinya masalah yang Anda coba selesaikan bukanlah masalah yang Anda temui. Git tidak memungkinkan Anda untuk bekerja secara lokal dengan cabang jarak jauh (yang origin/remote-branch-long-nameAnda lihat hanyalah cabang pelacakan; Anda tidak dapat bekerja dengannya secara langsung) dan Magit membimbing Anda menuju alur kerja yang dimaksud.

Karena Anda ingin bekerja dengan origin/remote-branch-long-nameAnda mungkin harus menjalankan magit-branch-and-checkout( b c). Pilih origin/remote-branch-long-namedan itu akan meminta Anda untuk nama cabang lokal dan akan default ke "remote-branch-long-name". Ini memberi Anda kebutuhan cabang lokal untuk melakukan perubahan. Setelah selesai dengan perubahan Anda dan tekan untuk origin/remote-branch-long-nameitu akan memperbarui cabang pelacakan jarak jauh.

Anda dapat memiliki cabang lokal dengan garis miring di dalamnya, tetapi menggunakan nama jarak jauh dalam nama cabang lokal dapat membuat segalanya sangat membingungkan. Git ingat dari mana remote cabang lokal diperiksa, jadi Anda tidak perlu melacaknya sendiri.

Untuk penjelasan yang lebih lengkap daripada jawaban saya di sini (!) Anda menemukan halaman ini sebagai gambaran yang bagus tentang remote.

Epa
sumber
7
Saya pikir putuskan di sini adalah bahwa aliran Magit berbeda dari aliran git. Jika Anda menjalankan git checkout foo, dan foobukan cabang, tetapi origin/foobenar, git akan membuat cabang baru foodan mengaturnya untuk dilacak origin/foo. Jadi git mengajari Anda untuk berpikir, "Saya baru keluar foo, dan git melakukan semua yang diperlukan". Tetapi ini tidak bekerja dengan magit; berlari magit-branch-and-checkoutadalah cara untuk pergi.
zck
4

Sejak magit v2.12.0, ada perintah magit-branch-checkout, terikat ke b l(Checkout cabang lokal), yang melakukan apa yang Anda inginkan. Lihat dokumen untuk detailnya.

Emosis
sumber