avatar
дата инженеретта
@data_engineerette
29.07.2025 07:07
emoji cherry-pick emoji

Вы наверняка слышали про такую команду в гите, но никогда не использовали. Она символизирует то, как вы с дерева аккуратненько срываете вишенки одну за одной

В чем суть и зачем она нужна?

Допустим, есть ветка dev. У вас появилась новая задача. Вы создаете feature/DE-111 и пушите свои изменения

Потом вы хотите потестить определенную функциональность на деве, но в фича-ветке уже намешано много всего. А вам нужны всего лишь 1-2 коммита

Что делать?

Сначала из своей ветки достаем хэши коммитов. Потом идем в нужную ветку и вставляем их туда

git checkout feature/DE-111
git log --oneline -10 # последние 10 коммитов

git checkout dev
git cherry-pick commit1-hash commit2-hash
git push


Теперь в деве такая история коммитов:

commit2-hash
commit1-hash
dev-last-commit
...

Но если теперь вы сделаете merge ветки, то каждый коммит задублируется:

merge branch 'feature/DE-111' into dev
commit2-newhash - это изменения commit2 с новым хешом
commit2-hash
commit1-newhash - это изменения commit1 с новым хешом
commit1-hash
dev-last-commit
...
17
7
🤷 4
17 2.8K

Обсуждение 0

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram