11 січня 2020 р.
git cherry-pick
- ця команда рятує від непорозумінь в гілках між розробниками.
Розглянемо наступну ситуацію. Потрібно зробити деякий немалий функціонал. Для цього зробимо окрему гілку від develop git checkout -b branch-20
. З branch-20 будемо робити гілки для нашого фунцціоналу і мерджити ці гілки в branch-20.
Отже створили для гілку для частини функціоналу (ми зараз в branch-20) git checkout -b branch-5
Всі решта розробників теж роблять свої гілки від branch-20.
Ви написали свій код і хочемо створити Merge Request в branch-20. Але виявилось, що колега з незрозумілих причин оновив нашу робочу branch-20 з --force. Тобто у branch-20 оновився хеш і це вже не та branch-20 з якої ми сворили свою branch-5 і ми не зможемо сворити правильний Merge Request
Що робити? По суті нам треба оновити branch-20 (git pull origin branch-20
). Сворити нову свою гілку від оновленої branch-20 і якось перенести весь свій новий код.
Нам допоможе команда cherry-pick
. Ця команда переносить тільки зміни з одної гілки в іншу.
# переходимо в оновлену branch-20
git checkout branch-20
# створюємо нову гілку для свого коду і переходимо в неї
git checkout -b branch-5v2
# дивимось який і копіюємо хеш старої гілки
git log branch-5
# перекидуємо тільки наші зміни з branch-5 в branch-5v2 в якій ми зараз знаходимось
git cherry-pick 974a7b0d7c195ffa48a1b9c688d83fc73e967d10
Ми перенесли тільки той код, що написали в нову гілку branch-5v2, яку створили з оновленої branch-20. І останнє git push origin branch-5v2
Отримання змін з головної гілки, об'єднання декількох комітів
Встановлення і запуск PyCharm через application menu linux (ubuntu)