GIT Cherry-pick - Quando e come utilizzare GIT Cherry-pick con Esempio?

Sommario:

Anonim

Introduzione a GIT Cherry-pick

In questo articolo, impareremo in dettaglio la scelta Cherry GIT in dettaglio. Ci sono molti programmatori che lavorano allo stesso sviluppo software da diversi angoli del mondo. Quindi come gestire i codici? Come faranno capire agli altri quali cambiamenti hanno apportato? Come eseguire il commit dei codici e mantenere versioni diverse? Come unire i codici?

Per risolvere questi problemi, GIT è entrato nel mondo dello sviluppo. GIT è un eccezionale sistema di gestione del codice sorgente (SCM) e sistema di controllo della versione distribuita. GIT è stato creato da Linux Torvald, la persona che ha sviluppato il kernel Linux. Ovviamente, è uno strumento open source in cui ogni programmatore può contribuire a costruire un software da qualsiasi parte del mondo.

GIT ha molte funzionalità. Potrebbe avere più rami. Uno sviluppatore può scrivere codici dopo aver creato il proprio ramo nel sistema locale e unirlo con il ramo principale o altri rami del repository GIT remoto.

Che cos'è GIT Cherry-pick?

Immagina, il lavoro del progetto sta continuando a scrivere una sceneggiatura sulla storia e l'evoluzione dei telefoni cellulari. Quindi, ci sono molte persone che lavorano allo stesso progetto e tutti lavorano separatamente. Tuttavia, alla fine, la sceneggiatura di tutti verrà compilata insieme.

Ora, il membro A sta scrivendo sui telefoni Apple e improvvisamente si rende conto che può essere migliore. Quindi, ha informato la questione agli altri membri del team che stanno lavorando allo stesso progetto. Un altro membro X gli ha detto che sta scrivendo una sceneggiatura su telefoni Android e ha chiesto al membro A di dare un'occhiata.

Quindi il membro A ha esaminato la sceneggiatura del compagno di squadra e ha scoperto che alcune delle parti sono le stesse con alcuni cambiamenti che sono davvero buoni. Pertanto, ha scelto con cura quei cambiamenti e incollato nella sua stessa sceneggiatura. Questo è lo stesso che Cherry-Pick ha chiamato in GIT in materia di software di codifica.

Git-cherry-pick è un potente comando git e cherry-picking è un processo per raccogliere un commit da un ramo e applicarlo a qualche altro ramo. In parole semplici, possono esserci più rami in cui gli sviluppatori commettono i loro codici. Ora, uno sviluppatore avrebbe dovuto inserire i suoi codici nel ramo A, tuttavia, ha commesso i codici nel ramo B per errore. Quella volta Cherry-Pick potrebbe riportare il commit sul ramo corretto.

Usa il comando seguente (nel sistema Unix) per conoscere diverse opzioni per git-cherry-pick,

Comando:

$man git-cherry-pick

La sintassi per il comando cherry-pick,

Sintassi:

git cherry-pick (–edit) (-n) (-m parent-number) (-x)

Quando utilizziamo GIT Cherry-pick?

Git-cherry-pick è uno strumento utile, tuttavia non è una buona pratica per tutto il tempo. git-cherry-pick può essere utilizzato nei seguenti scenari,

  • Per renderlo corretto quando un commit effettuato accidentalmente in un ramo diverso.
  • Fusioni tradizionali preferibili
  • Per applicare le modifiche in un commit esistente.
  • Commissione duplicata
  • Correzione di bug

Come funziona GIT Cherry-pick?

È necessario implementare un difetto riscontrato nel codice nell'ambiente di produzione e una correzione. Una volta implementata la modifica e risolto un difetto, ora è il momento di riportare questa modifica del codice nell'ambiente di sviluppo in modo che il difetto non si verifichi più e più volte nell'ambiente di produzione in futuro.

La prima opzione è una semplice unione git ed è una soluzione ideale se funziona. Tuttavia, ci sono altri cambiamenti anche nell'ambiente di produzione e questi non possono essere riportati nell'ambiente di sviluppo durante l'unione. E in tal caso, cherry-pick è l'opzione corretta.

Cherry-pick porta quel commit che è stato fatto solo per la correzione di bug. Non seleziona gli altri commit.

Ecco un'illustrazione,

Fig 1: G e H sono i commit del ramo di produzione. Si impegna il ramo di sviluppo da A a F. Si è verificato un problema nel ramo di produzione. In H commit viene sviluppata una correzione che deve essere applicata nel ramo Sviluppo ma non è necessario applicare il commit G.

Fig. 2: Ora il commit H viene selezionato nel ramo Sviluppo e il commit risultante è H '. Le modifiche di commit G non sono incluse nel ramo Sviluppo.

Come utilizzare GIT Cherry-pick con l'esempio?

Supponiamo di avere due rami (master e new_feature) (comando usato per vedere il ramo branch-git)

Abbiamo commesso il commit (evidenziato) nel ramo new_feature per errore. (comando utilizzato per visualizzare il registro di logs-git con commit)

Tuttavia, dovrebbe essere solo nel ramo principale. Prima copia lo SHA evidenziato in un blocco note.

Ora useremo un comando git-cherry-pick per spostare questo commit sul ramo principale, ma prima dobbiamo passare al ramo principale (comando usato per cambiare il checkout di branch-git <nome del ramo > )

(comando usato git - cherry - pick < commit id > ) (lo stesso SHA dovrebbe essere incolla che è stato copiato sul blocco note in precedenza con il comando git cherry-pick)

Ora possiamo vedere lo stesso commit disponibile nel ramo master (comando used-git log)

Per ulteriori esempi di comandi git cherry-pick, consultare il link seguente,

https://git-scm.com/docs/git-cherry-pick

Cose importanti da ricordare

Tre cose da ricordare quando si usa cherry-pick e si lavora in gruppo.

1. messaggio di commit standardizzato: è meglio usare il messaggio di commit standardizzato e -x se selezioniamo da un ramo pubblico.

git cherry-pick -x

Eviterà di fondere conflitti in futuro.

2. copia sopra le note: a volte alcuni di cherry-pick hanno note e quando eseguiamo cherry-pick, le note non vengono copiate. Pertanto, è meglio usarlo.

git notes copy

3. C herry-pick di più commit quando sono solo lineari: vogliamo selezionare più commit come G, H (Fig 1), se sono lineari, quindi utilizzare solo il comando seguente,

git cherry-pick G^..H

Conclusione

Supponiamo di voler raccogliere un commit specifico da un ramo diverso e applicare al ramo corrente, ecco i passaggi consigliati,

1. Trova l'hash di commit che deve essere selezionato per primo.

2. Vai al ramo di destinazione.

3. git cherry-pick -x

Risolvi i conflitti se si verificano. Se nel commit originale sono presenti note, è necessario copiarle.

git notes copy

Articoli consigliati

Questa è una guida a GIT Cherry-pick. Qui discutiamo del suo funzionamento e di come usare git cherry-pick con esempi dettagliati. Puoi anche consultare i seguenti articoli per saperne di più -

  1. Strumenti Git
  2. Terminologia Git
  3. Git Checkout Tag
  4. Cos'è Git Branch?