Cherry-picking commits создает новые коммиты с тем же содержимым.Если я выберу вишню из ветви dev
в ветку test
через ветку dev-to-test
, то коммиты, которые я выбрал, будут включены в следующий запрос на извлечение из ветви dev
в ветку test
, хотя ихсодержимое уже добавлено в тестовую ветвь.
Например:
текущие коммиты, присутствующие в ветвях:
dev: a-b-c-d-e-f
test: a-b-c
Затем я выбираю вишню и ускоренно пересылаю:
dev: a-b-c-d-e-f
test: a-b-c-g(content of e)-h(content of f)
Затем в dev добавляется новый коммит:
dev: a-b-c-d-e-f-i
Я хочу достичь трех вещей:
- следующий запрос на извлечение из dev для тестирования взабрать только коммиты
d-i
; - история тестов, чтобы она выглядела как
test: a-b-c-g-h-d-i
; - , чтобы иметь возможность отслеживать отношение теста к коммитам
e-f
через историю.
Как мне этого добиться?Или я должен реструктурировать рабочий процесс git, чтобы предотвратить такие вещи?
Вот реальный пример этой проблемы:
Вот настройка для запроса на получение, коммиты в красном поле ужебыл выбран для целевой ветви.
Вот итоговая история.Оранжевым цветом обозначены коммиты из вишневого пика.Красным цветом обозначены коммиты из запроса на извлечение.Красные коммиты не имеют связанных изменений и точно повторяют сообщения оранжевых коммитов.
Здесь приведены подробности выполненного запроса PR.В нем присутствуют эти два коммита, которых не должно быть, поскольку запрос на извлечение не применяет изменения, описанные в этих коммитах.