Что бы вы ни делали, не переустанавливайте и не нажимайте принудительно develop
, потому что он используется совместно с другим разработчиком, и он станет более беспорядочным.
Вы можете вернуться, но, как вы видели, помните, что ранее объединенные коммиты будут игнорироваться в будущем слиянии (так как история не изменилась).
Я бы воссоздал новую ветку, как если бы она была новой.
Вы можете легко сделать это с помощью rebase, указав, с какого коммита начинать rebase, что и объясняется в предоставленной вами ссылке.
Допустим, мы в такой ситуации
/B-C\(feature/1)
A-----D-E(develop)
, где A - это develop
до слияния и происхождения ветви, C - feature/1
ветвь в момент слияния, D коммит слияния, E попытка исправить это.
Сначала верните D и E, так как D является коммитом слияния, вам нужно указать, к какому из родителей следует вернуться, используя -m
, это должен быть 1, но отметьте (git revert D -m 1
).
Затем перебазировать ветку feature/1
on при коммите A
(источник ветки)
git checkout feature/1
git rebase --no-ff A (no-ff to force rebase)
Тогда вы закончите так:
/B-C\
A-----D-E-F(develop)
\B'-C'(feature/1)
где F - коммит для возвратов, а B 'и C' - только что созданные коммиты.
И вы можете объединить feature/1
, как будто это новая ветвь.