Come scegliere facilmente la ciliegia con Magit?


40

Sto usando Magit da alcuni mesi e mi piace molto. Ma una cosa che faccio ancora in un terminal è la raccolta delle ciliegie.

Qual è un modo semplice per farlo?

Risposte:


31

Ovunque vedi un commit in un buffer Magit, puoi selezionarlo spostando il punto lì e quindi digitando A A. Puoi anche selezionare più commit contemporaneamente: seleziona alcuni commit utilizzando la regione e poi premi A A.


45

Versione Magit <= 1.4.2

È abbastanza facile:

  1. Inserisci la panoramica magit-status
  2. Controlla (premi b b) il ramo in cui vuoi selezionare.
  3. Esegui un intervallo di registro (premi l r l) per trovare i commit che vuoi selezionare. Qui si selezionano i 2 rami che si desidera confrontare.
  4. Scorrere fino al commit che si desidera selezionare e premere Aper applicare le modifiche e anche metterle insieme con il messaggio di commit. Se si preme a, i cambiamenti non verranno messi in scena ma solo applicati.

Non è necessario eseguire un intervallo di registro per Cherry Pick. Ogni volta che vedi un registro di commit puoi premere Aper selezionarlo.

Versione Magit> = 2.1.0

Dopo aver aggiornato magit a 2.1 il flusso di lavoro è diverso. Per entrambi i metodi devi prima avviare magit-status.

Metodo A : Cherry Pick cambia da un altro ramo uno per uno

  1. Premere le quindi oper ottenere un elenco di altri rami.
  2. Seleziona il ramo da cui selezionare la ciliegia.
  3. Passa al commit di cui hai bisogno e premi Adi Anuovo seguito .
  4. La riga di stato ti mostrerà quale commit hai selezionato

    per esempio feature/ABC~4

    Premere Enterper applicare le modifiche.

Metodo B : Cherry Seleziona tutte le modifiche da un altro ramo

  1. Premere Aper scegliere la modalità di selezione ciliegia.
  2. Premere di Anuovo per applicare e confermare le modifiche. Premere aper applicare solo le modifiche.
  3. Scegli un ramo da cui selezionare le modifiche e premi Enter.

Personalmente preferisco il metodo A in quanto è possibile gestire meglio i conflitti di unione.


8

Non uso la raccolta delle ciliegie, ma colpisco ?negli magit-statusspettacoli y: Cherry. Questo esegue il comando magit-cherry, che ti consente di scegliere una testa e un monte. Sembra che questo sia quello che vuoi.

Puoi digitare C-h r d m Magit RETper leggere il manuale di Magit. È possibile utilizzare C-s cherrye premere ripetutamente C-sper cercare nel manuale. Sembra che le informazioni siano nella sezione 23:

Uno dei confort di gitè che può dirti quali commit sono stati uniti a monte ma non localmente e viceversa. Il sotto-comando di Git per questo è cherry(da non confondere cherry-pick). Magit ha il supporto per questo invocando magit-cherryche è vincolato per yimpostazione predefinita.

Magit ti chiederà quindi prima la revisione a monte (che per impostazione predefinita è presente nel ramo remoto attualmente tracciato) e la revisione principale (che per impostazione predefinita è il ramo corrente) da utilizzare nel confronto. Vedrai quindi un nuovo buffer in cui tutti i commit sono elencati con un indicatore direzionale, la loro revisione e la prima riga del messaggio di commit. Il marker direzionale +indica un commit presente in upstream ma non in head oppure -che indica un commit presente in head ma non in upstream.

Da questo elenco è possibile utilizzare le consuete combinazioni di tasti per i singoli commit di aselezione ciliegia ( per la selezione ciliegia senza commit e A per lo stesso più il commit automatico). Il buffer viene aggiornato automaticamente dopo ogni selezione della ciliegia.


1
Quando si richiama il manuale di Magit, è possibile salvare un tasto premendo C-h iinvece di C-h r d. Questo ti porterà direttamente al livello più alto di informazioni.
itsjeyd,

1
@itsjeyd Nahh, C-h iti porterà all'ultimo file di informazioni che hai aperto, quindi se ho colpito C-h i m, potrei potenzialmente guardare un menu di capitoli in SICP invece di un menu di tutto. Colpire ddopo C-h io C-h rti assicurerà di essere nella directory Info quando prima di colpire m.
tata

È un bel trucco, non lo sapevo! Inoltre, totalmente fuori tema: una versione Info di SICP ?! Dove posso ottenere una copia? :)
itsjeyd,

@itsjeyd Lo tengo nel mio Dropbox, penso di averlo preso da qui: github.com/webframp/sicp-info
tata

1
Grazie! Ho controllato MELPA e si scopre che esiste un pacchetto che viene creato da quel repository. Quindi installare la versione di Info SICP è facile come M-x package-install RET sicp RET:)
itsjeyd
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.