2016-08-26 2 views
0

У меня есть длинная стойка патч и ветка развития. Я хочу, чтобы вишня выбрала конкретные изменения из разработки в ветку патча.Как я могу отслеживать git cherry-pick commits между ветвями

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

Есть ли способ вишневого выбора и поддерживать родительскую связь с веткой для этой фиксации?

добавляет «-x» лучшее, что я могу сделать?

Благодаря

+0

Другой вариант - создать промежуточную ветку, которая имеет только необходимые коммиты, и объединить ее с вашей ветвью патча (верните коммиты, которые вам не нужны). –

ответ

0

Да, -x действительно единственный способ сослаться на коммит, который вы вишней.

Если вы хотите сохранить родительскую связь своих коммитов, вам необходимо объединить ветви. Я предполагаю, что вы захотите объединить ветвь патча с веткой разработки, чтобы вы сохраняли свою работу должным образом изолированной.

Хотя, основываясь на том, как вы сформулировали вопрос, я думаю, что у вас может быть неправильное представление о коммитах. У них нет «ссылки» на ветку. Скорее, у каждой фиксации есть одно родительское сообщение, на которое они указывают. Объединяющие коммиты имеют несколько родителей, чтобы показать, какие коммиты они объединяются. Ветвь действительно является указателем на фиксацию. Конец может существовать на нескольких ветвях либо потому, что он был объединен, либо вы создали новую ветвь, основанную на ней, или более позднюю фиксацию.

Что делает git cherry-pick, делает копию изменений, которые вы сделали в одной ветке и применяете их в другом месте. Вы делаете это, потому что не хотите, чтобы остальная часть истории сопровождалась этим конкретным изменением. Если вы хотите сохранить историю, вы должны будете git merge или git rebase изменениями от одной ветви к другой.

Смежные вопросы