Разделение коммитов между ветвями git

#git #git-branch #branching-strategy

#git #git-branch #стратегия ветвления

Вопрос:

Это интересный вопрос (или, по крайней мере, я надеюсь, что это так). Я работал над функцией, и у меня есть ветвь git с этими изменениями.

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

По сути, мне нужно разделить мои коммиты на ветви A на ветви B, C, D, чтобы иметь меньшие запросы на извлечение. Кто-нибудь знает хороший подход к этой проблеме?

Ответ №1:

Самым простым способом может быть создание новой ветви в прошлой точке, что сделает разницу не слишком большой, чтобы ее было трудно прочитать, но в то же время не слишком маленькой, чтобы быть бессмысленной. Отправьте эту ветвь в виде запроса на извлечение. После того, как это будет принято, создайте новую ветвь из другой точки между предыдущей и вашим HEAD. Повторяйте, пока не дойдете до HEAD. Важно делать это шаг за шагом, отправляя запросы на извлечение последовательно, а не параллельно, иначе проверяющие увидят код, который они уже видели в другом параллельном запросе на извлечение, что раздражает.

Другим способом может быть создание новой ветви со всеми вашими изменениями, но без истории коммитов (сжатый), и фиксация и создание запросов на извлечение по частям, вот так:

 git checkout -b branchB origin/master
git merge --squash --no-commit branchA
  

После этого вы можете зафиксировать части изменений и создать запрос на извлечение. После того, как это будет принято, зафиксируйте больше изменений и создайте еще один запрос на извлечение и так далее. Просто будьте осторожны, убедитесь, что части, которые вы зафиксировали, могут работать без остальных. Легко совершить ошибку и в итоге получить ветку, которая работает только для вас, с вашими незафиксированными изменениями, которых еще нет в ветке.

Комментарии:

1. Спасибо, да, часть разделения коммитов на рабочие ветви является самой сложной. Придется пойти одним из этих путей, еще раз спасибо.