Magit - Come posso fare il checkout di un ramo remoto localmente senza digitare l'intero nome del ramo?


12

Ho una filiale remota remote-branch-long-name. Quando eseguo il checkout con il completamento del timone, posso digitare remote-branche origin/remote-branch-long-nameverrà visualizzato come opzione. Il problema è che per verificare questo ramo localmente, in realtà non posso passare a quel ramo, devo passare a remote-branch-long-name (without the origin/ prefix), poiché helm non prevede che come opzione di completamento, devo digitare manualmente l'intero nome del ramo.

C'è un'altra funzione che dovrei usare per questo caso d'uso o devo hackerare una funzione insieme?

Risposte:


22

Sembra che il problema che stai cercando di risolvere non sia il problema che stai riscontrando. Git non ti consente di lavorare localmente con filiali remote ( origin/remote-branch-long-namevedi che è solo una diramazione di monitoraggio; non puoi lavorare direttamente con essa) e Magit ti sta guidando verso il flusso di lavoro previsto.

Dato che vuoi lavorare con origin/remote-branch-long-namete dovresti probabilmente eseguire magit-branch-and-checkout( b c). Selezionare origin/remote-branch-long-namee ti verrà richiesto un nome di filiale locale e verrà impostato automaticamente su "nome-ramo-remoto-remoto". Questo ti dà la filiale locale necessaria per apportare le modifiche. Quando hai finito con le modifiche e premi su di origin/remote-branch-long-nameesso aggiornerà il ramo di tracciamento remoto.

Puoi avere filiali locali con una barra, ma usare un nome remoto in un nome di filiale locale può creare confusione. Git ricorda da quale remoto è stata estratta una filiale locale, quindi non è necessario seguirla da soli.

Per una spiegazione più completa della mia risposta qui (!) Trovi questa pagina come una buona panoramica dei telecomandi.


8
Penso che la disconnessione qui sia che il flusso Magit è diverso dal flusso git. Se corri git checkout foo, e foonon è un ramo, ma lo origin/fooè, git creerà un nuovo ramo fooe lo imposterà origin/foo. Quindi git ti insegna a pensare "Ho appena fatto il checkout fooe git fa tutto il necessario". Ma questo non funziona con Magit; la corsa magit-branch-and-checkoutè la strada da percorrere.
zck,

4

Da magit v2.12.0, c'è un comando magit-branch-checkout, associato a b l(Checkout branch locale), che fa esattamente quello che vuoi. Vedi il documento per i dettagli.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.