Saat Anda mendorong cabang dengan Magit (dengan P P
) dan cabang tidak memiliki hulu, Magit menanyakan nama cabang yang ingin Anda dorong. Itu hebat.
Namun, begitu Anda mengatur cabang upstream untuk cabang, Magit tidak lagi menanyakan di mana Anda ingin mendorongnya. Ini biasanya nyaman (Anda tidak ingin ditanya setiap saat), tetapi membuatnya sulit untuk mendorong cabang ke cabang jarak jauh yang berbeda.
Apakah ada cara agar Magit bertanya kepada saya lagi tentang cabang tujuan, bahkan jika cabang saat ini sudah memiliki hulu?
Kasus penggunaan
Cukup umum bahwa saya memiliki cabang seperti ini:
Local: issue-30 ~/Git-Projects/repo/
Remote: issue-30 @ origin ([email protected]:.../repo.git)
Head: ebe4054 Some commit message
dan saya ingin mengubah cabang Lokal dan Remote ke issue-30-and-34
. Jika saya mengganti nama cabang lokal, saya tahu ini:
Local: issue-30-and-34 ~/Git-Projects/repo/
Remote: issue-30 @ origin ([email protected]:.../repo.git)
Head: ebe4054 Some commit message
Bahkan jika saya menghapus origin/issue-30
, melakukan P P
pada issue-30-and-34
hanya akan menciptakan origin/issue-30
.
Yang akhirnya saya lakukan adalah sebagai berikut, tetapi rasanya agak tidak langsung untuk sesuatu yang dapat dilakukan dalam satu git
perintah:
- Buat cabang baru yang disebut
issue-30-and-34
(alih-alih mengganti nama yang lama), - menghapus versi Lokal dan Remote
issue-30
, - push
issue-30-and-34
(karena belum ada hulu, Magit akan bertanya di mana saya harus mendorong).
Jawaban:
Mulai dengan
v2.1
Anda dapat mengubah hulu dari cabang saat ini menjadi cabang jarak jauh atau lokal menggunakan bu[REMOTE/]BRANCH
RET. Dimulai denganv2.4
, jika upstream sudah ditetapkan, maka buhanya akan menghapusnya. Tekan ulagi untuk menetapkan nilai baru.Mulai dengan
v2.4
dan jika upstream tidak disetel, Anda juga dapat mengatur upstream saat mendorong dengan menggunakan pu[REMOTE/]BRANCH
RET. Anda akan secara otomatis ditanya cabang apa yang akan digunakan sebagai hulu. Setelah upstream telah ditetapkan puakan mendorongnya tanpa membiarkan Anda mengubah upstream. Jadi untuk mengubah hulu, Anda harus menggunakan pendekatan yang dijelaskan dalam paragraf sebelumnya.Sebelumnya
v2.4
juga dimungkinkan untuk mengatur cabang jarak jauh yang Anda dorong sebagai cabang hulu menggunakan p-ueREMOTE/BRANCH
RET. Tapi sekarang--set-upstream
saklar tidak lagi tersedia di push popup secara default . Anda bisa mendapatkannya kembali dengan mengaturmagit-push-current-set-remote-if-missing
ke nol. Itu memiliki dua efek:--set-upstream
saklar akan tersedia lagi setelah restart berikutnya dan pendekatan yang dijelaskan dalam paragraf sebelumnya tidak akan berfungsi lagi.Jika Anda ingin kedua fitur yang dijelaskan dalam paragraf kedua dan ketiga tersedia pada saat yang sama, maka jangan
magit-push-current-set-remote-if-missing
tersentuh dan tambahkan ini ke file init Anda:sumber
Tekan "
P C-u C-u P
" untuk membuat Magit menanyakan cabang jarak jauh dan jarak jauh mana yang akan digunakan sebelum mendorong.(Dengan argumen awalan tunggal ("
P C-u P
") Magit menanyakan jarak jauh apa yang digunakan.)Saya menemukan ini dengan menekan
P C-h k P
penyangga status Magit, membaca dokumenmagit-push
danmagit-push-dwim
(sepertinya dokumen ini kedaluwarsa, BTW), dan bereksperimen.PS: Saya pakai Magit
magit-1.2.0-2049-ge6839e8
.sumber
Sepertinya ada di bawah bagian cabang / konfigurasi sekarang:
b
C
p
untuk mengatur pushRemotesumber
Pada November 2016, dan yang terbaru
magit
, inilah solusi parsial:P
e
- memungkinkan Anda untuk mendorongelsewhere
, tetapi itu tidak diingatSaya tidak dapat menemukan cara bagi magit
--set-upstream
, jadi saya hanya melakukan ini dari terminal, semacam cheat tapi itu membuat saya mengatasi masalah ini:git push --set-upstream origin <branch-name>
Dan sekarang hulu baru sudah disimpan, dan saya dapat membangun hal berikutnya :)
sumber
--set-upstream
" - Mungkin Anda harus mencoba membaca jawaban tarsiusmagit
telah berubah sedikit sejak itu, dan harapan saya adalah solusi saya menyelamatkan seseorang beberapa menit