Git: Unisci un commit in un altro ramo

Quindi ho 3 rami;

  • develop – il mio ramo di sviluppo continuo
  • version_1 : un ramo di rilascio
  • version_2 : un ramo di rilascio

Ho dovuto fare un aggiornamento rapido su version_2 per rispedire quella versione, era un cambio di 2 righe in 2 file, molto piccolo.

Volevo applicare quella correzione a version_1 e develop .

Così io;

 git checkout version_1 git merge  

Ho pensato che un commit contenesse solo i cambiamenti, quindi applicherei solo quelli. Ma l’unione è in conflitto perché tenta di aggiornare tutte le modifiche tra i due rami.

C’è un modo per unire / spostare / applicare SOLO le modifiche in un piccolo commit ad altri rami?

Potrei semplicemente reimplementare manualmente l’hotfix su quei rami, ma questo sembra un sacco di duro lavoro, soprattutto perché potrebbero essere necessari più aggiornamenti rapidi da applicare e da distribuire a tutti gli altri rami.

 Cheers, Will 

Unire solo uno o alcuni commit significa usare git cherry-pick

Prima annulla l’unione che hai appena fatto: vedi ” Annullare un’unione di Git? “.
Poi:

 git checkout version_1 git cherry-pick  

Ciò può essere applicato a più commit oa un intervallo di commit: vedi ” Come selezionare un intervallo di commit e fondersi in un altro ramo “.

È necessario cherry-pick quei commit.

Passare al ramo in cui si desidera aggiungere il commit:

 git checkout develop 

Quindi, cherry-pick il commit. Prima fai un git reflog e ottieni SHA-1 del commit dell’aggiornamento rapido.

Poi, mentre ti trovi sul ramo, develop cherry-pick

 git cherry-pick  

Eseguire azioni simili sull’altro ramo version_1 .