Manchmal arbeite ich an zwei Git-Zweigen parallel, beispielsweise an “main” und “develop”.
Gelegentlich kommt es dann vor, dass eine bestimmte Änderung an “develop” auch in
“main” gebraucht wird – bspw. eine wichtige Fehlerkorrektur. Diese einzelne Änderung
übernehme ich mit git cherry-pick ...
von “develop” nach “main”.
Leider läuft die Übernahme machmal nicht ganz rund: Ich muß gewisse Anpassungen für “main” vornehmen, damit die Korrektur passt. Danach möchte ich vermerken, dass genau diese Änderung später niemals von “main” nach “develop” übertragen werden muß.
Damit das klappt, muß ich etwas sorgfältig vorgehen:
- Sicherstellen, dass “main” vor der Änderung mit “develop” abgeglichen ist! (
git checkout develop; git merge main
) - Übernehmen der Änderung von “develop” nach “main”! (
git checkout main; git cherry-pick ...
) - Konflikte in “main” lösen
- Sicherstellen, dass “main” nun den gewünschten Stand hat (also: Korrektur aus “develop” ist richtig übertragen)
- “develop” aktualisieren und die letzten Änderungen auf “main” als bereits übernommen markieren:
git checkout develop
git merge main -s ours --no-ff --no-commit
git commit -m "Merged main"
Links
Änderungen
- 2021-11-17 – Erste Version