Я немного испортил свой git-репозиторий. Я работал над несколькими ветками одновременно и сделал слияния, которые в ретроперспективе были действительно плохим решением.
Я работал над ветвями JIRADAPTER-108, JIRADAPTER-109 и JIRADAPTER-104 (см. Прилагаемую историю). JIRADAPTER-108 и JIRADAPTER-109 были исправлениями, которые я разветвлял от master и сливал обратно с master только с одним коммитом соответственно. Чтобы использовать эти изменения, я решил объединить мастер в ветку JIRADAPTER-104, что оказалось плохой идеей!
На первый взгляд я не смог объединить все из ветви JIRADPATER-104 в master, так как слияние foxtrot недопустимо. Это было, как я пытался слить из origin / JIRADPATER-104 (последний зеленый коммит).
Мне удалось объединить правильные изменения в мастер путем объединения последнего коммита до слияния мастера в JIRADAPTER-104 (последний розовый коммит).
Хотя это только косметика, я сейчас пытаюсь избавиться от них для фиксации в ветке JIRADAPTER-104, где я слил в нее мастера (все зеленые коммиты).
Я пытался сбросить до последнего розового коммита: безуспешно.
Может кто-нибудь помочь мне избавиться от этих двух зеленых коммитов, чтобы теги origin / JIRADAPTER-104 и JIRADAPTER-104 были на последнем розовом коммите?
EDIT
Используя рабочее дерево, обязательно установите параметр Enable Force Push
в Tool > Options > Git
.
Тогда рабочий процесс очень похож на предложенный Mlad274 (большое спасибо за это):
- Нажмите на коммит, который должен быть последним в ветке
- Из контекстного меню выберите
Reset current branch to this commit
- Нажмите (выберите
Force Push
внизу меню`)