У моєму випадку я об’єднав свою гілку (скажімо: моя-гілка) з іншою гілкою об’єктів (особливість-гілка), але не головну. Тож історія моєї галузі була такою:
my-branch (before merge)
---master----m1----m2----m3---m4
Після об'єднання його з іншим, feature-branch
який мав коміти f1, f2
поверх master, він став таким:
my-branch (after merge)
---master----m1----m2----f1----f2----m3---m4----mergecommit
Це могло статися, тому що під час роботи над моєю гілкою я зробив злиття з master після 2 комітів, або одна з 2 гілок могла бути не в курсі master. Отже, у цьому випадку git revert -m 1
це не спрацювало, оскільки залишало їх f1
і f2
робило проміжки між ними.
Рішення було простим, яке буде працювати у звичайних сценаріях, коли у нас немає проміжних комітів:
git rebase -i HEAD~6
Замість 6 використовуйте відповідне число на основі кількості попередніх комітів, які ви хочете змінити. Тепер відкрито редактор Vim, просто позначте небажані коміти як drop
і те саме і вийдіть за допомогою :wq
журналу перевірки:
git log --oneline
силовий поштовх
git push -f
Тепер віддалена гілка повинна бути в попередньому стані.