Обратите внимание на то, что вы сделали вначале 3-5:
Я проверил местное отделение master
.
Я слился в ветви функций (git merge feature/26062018-offline-seite_ef
)
Я нажал на удаленный сервер (git push origin feature/26062018-offline-seite_ef
)
То, что вы делали на шаге 4, иногда называется тестовым слиянием . Вы нигде не добавляли это слияние, но оно все еще есть в вашем хранилище.
Затем вы приступили ко второй группе шагов:
создал новую ветку feature/26062018-newsletter-popup_ef
.
Это конкретное имя, в данный момент, назвало сделанное вами тестовое слияние. Дополнительные коммиты, которые вы сделали в шаге 2, строятся из этого слияния, поэтому коммиты, которые вы выдвинули в конце, были:
- все коммиты, которые вы сделали в первой группе (они, вероятно, уже были в вашем предыдущем запросе на получение, так что эта часть, вероятно, прошла очень быстро); плюс
- коммит слияния; плюс
- коммиты, сделанные вами после создания
feature/26062018-newsletter-popup_ef
.
Следовательно, это коммиты в вашем втором запросе на извлечение: все в вашем первом, плюс слияние, плюс те, которые вы хотели иметь в нем.
То, что вы должны были сделать, было одним из следующих:
- сделайте тестовое слияние в какой-то другой ветви (не вашей
master
) или
- сделать тестовое слияние на
master
, но затем удалить его (например, git reset --hard HEAD~1
); или
- даже не связывайтесь с тестовым слиянием (только хорошая практика в некоторых ограниченных случаях).
На этом этапе вам нужно отозвать второй запрос на извлечение. Вы можете создать новую ветвь, начиная с последнего коммита до первого слияния тестов - помните, что в этот момент у вас есть два тестовых слияния на вашем master
. Эта начальная точка обычно также совпадает с идентификатором хэша фиксации origin/master
. Теперь, когда у вас есть новая ветвь, вы можете использовать git cherry-pick
, чтобы скопировать нужные коммиты в новые коммиты, которые корректно расширяют граф, проверить, объединить коммиты, если хотите, и нажать эти коммиты. (Вы можете повторно использовать имя ветки, переименовав ветку, в которой слишком много коммитов, используя git branch -m
; см. документацию .)