Копирование незначительных обновлений в другую ветку с помощью git - PullRequest
2 голосов
/ 02 декабря 2009

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

Я работаю над шипом в ветке, но потом наткнулся на простое исправление, которое также должно относиться к мастеру. Лучшее, что я нашел на данный момент:

git stash
git checkout master
//do my correction manually
git commit -a
git checkout spike
git pop

Кажется, немного затянуто, только для одной строки, и это предполагает, что я делаю одну и ту же коррекцию дважды. Я не могу не чувствовать, что должен быть лучший способ сделать это. В своем ответе, пожалуйста, также рассмотрите случай, когда есть другие изменения в том же файле, которые я не хочу принимать.

Ответы [ 2 ]

2 голосов
/ 02 декабря 2009

Альтернативное решение , если вы знаете, что хотите внести изменения во многие ветви аванс , это следовать рекомендациям в "Устранение конфликтов / зависимостей между ветками темы на ранних этапах " и " Развлекайся слияниями и целями ветвей " посты в блоге Junio ​​C Hamano (git keeper), а именно: создайте отдельную ветку темы , в которую вы внесете изменения, а затем объедините эту ветку в (в вашем случае) 'master' и 'spike'.

1 голос
/ 02 декабря 2009

Если изменение, которое вы хотите применить к мастеру, состоит из одного полного коммита в ветви шипа, то для этой ситуации была сделана команда cherry-pick.

git stash
git checkout master
git cherry-pick <hash>
git checkout spike
git stash pop

Если вам нужна только часть коммита, используйте:

git stash
git checkout master
git cherry-pick -n <hash>
# tinker with the index until it contains the changes that you want to apply to master
git commit
git checkout spike
git stash pop
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...