Я использую git-svn для взаимодействия с нашим хранилищем Subversion на работе. Я создал ветку (назовем ее FeatureBranch), чтобы работать над новой функцией, но ей пришлось переключиться обратно на главную ветку, чтобы работать над чем-то другим. Когда я начал работать над тем, что должно было быть сделано на FeatureBranch, я забыл проверить FeatureBranch снова и сделал несколько коммитов в мастер-ветку, прежде чем осознать, что я сделал.Можно ли объединить ветку в git и сохранить историю?
я первоначально планировал делать следующее, чтобы исправить это (я до сих пор не dcommitted моих изменений в Subversion, так что все они группируются вместе, как самые последние коммиты я сделал):
git checkout FeatureBranch
git merge master
git checkout master
git reset --hard HEAD~n
где n - это количество коммитов, которые я хочу удалить из основной ветки, так как они теперь будут в FeatureBranch. Однако git merge, похоже, не сохраняет историю при слиянии с другой ветвью (она отображается как одно коммит). Как вы объединяете только определенные коммиты в git в другую ветку, сохраняя историю? Я уже слышал термин cherry-pick, это функциональность, над которой я должен смотреть?
Спасибо, я проверю их. Я всегда опасаюсь пробовать новые вещи с Git-Svn, прежде чем подтвердить, что они будут работать. –
Это работало как шарм, спасибо. К счастью, было только около 8 коммитов, которые мне нужно было исправить, и я был бы более сумасшедшим для себя (очень утомительно!) –
Плохо, я пробовал раньше, но он сказал, что должен ждать –