Cherry-Picking

Avancerad Git

Amanda Crawford-Adamo

Software and Data Engineer

Vad är cherry-pick?

Tillämpar ändringarna från en specifik commit på en annan gren

Cherry-pick av enskild commit

git cherry-pick <commit-hash>

Cherry-pick av flera commits

git cherry-pick <hash1> <hash2> ..

Användningsområden

  • Tillämpa specifika felrättningar över grenar
  • Återställ funktioner till stabila versioner
  • Tillämpa experimentella ändringar selektivt
  • Återskapa förlorade commits
Avancerad Git

Cherry-pick-exempel

Graf över grenarna main och feature. Main har två commits. Feature-grenen avviker från main efter den sista commiten.

Två bilder som visar loggen för main och feature-grenen före cherry-pick.

Avancerad Git

Cherry-pick-processen

  1. Checka ut main-grenen

    git checkout main
    
  2. Kör cherry-pick-kommandot för att hämta ändringarna från commit def456 i feature-grenen.

    git cherry-pick def456
    

Graf över grenarna main och feature. Main har tre commits. Feature-grenen avviker från main efter den andra commiten med ytterligare två commits. Mains tredje commit är en cherry-pickad commit från feature-grenens senaste commit.

Avancerad Git

Lösa cherry-pick-konflikter

Steg för konfliktlösning
  1. Redigera filer med konflikter manuellt
  2. Lägg till lösta filer i staging med git add <resolved-files>
  3. Fortsätt cherry-pick-processen med flaggan --continue
git cherry-pick --continue
Avbryta en cherry-pick

Använd flaggan --abort för att avbryta en pågående cherry-pick

git cherry-pick --abort
Avancerad Git

När ska cherry-pick användas?

Användningsfall

  1. Tillämpa hotfixar
  2. Testa isolerade funktioner

Försiktighetsåtgärder

  1. Kan skapa duplicerade commits
  2. Kan komplicera projekthistoriken om det används för mycket
  3. Vid större ändringar: överväg merge eller rebase
Avancerad Git

Nu kör vi en övning!

Avancerad Git

Preparing Video For Download...