2016-07-13 6 views
0

У меня есть следующий сценарий:Объединения 2 ветви, которые имеют те же совершить

master 

test_1 (branch from master) with commit X updated with --amend 

test_2 (branch from test_1) with original commit X and a new commit Y. 

Я новичок мерзавца и я сделал ошибку, когда я создал вторую ветвь. Эта ветка должна была быть от хозяина, а это филиал test_1 после того, как я уже сделал commit X по адресу test_1. Я работал над test_2 (commit Y), а между тем мне пришлось что-то изменить для commit X, сделанного на test_1.

Как я должен приступить к слиянию этих ветвей в мастер таким образом, что я не должен создавать новые коммиты или того, чтобы разрешить конфликт между commit X от test_2 и commit X updated от test_1 (много файлов изменено)? Кроме того, commit Y выполняется в разных файлах, кроме commit X.

EDIT: Сначала я подумал о создании новой ветви от мастера и копировании файлов, выполненных для фиксации Y и слияния с этой ветвью, но я хочу знать, есть ли «более чистое» решение.

ответ

1

cherry-pick Ваши изменения с test_1 и test_2 филиал. Для того, чтобы получить изменения в master, переключиться на master ветви и

git cherry-pick <commit-hash-of-X> <commit-hash-of-Y> 

Всякий раз, когда есть amend хэш получает изменилось. Хеш фиксации X в test_1 будет отличаться от хэша test_2. Поэтому выберите X от test_1 и Y от test_2

+0

Это именно то, что мне нужно. Большое спасибо. – bitcell