@matweykai
Standart coder ; )

Как удалить merge commit из проекта?

Мне нужно удалить merge коммит, который я сделал при pull'e из удалёнки. Как это можно сделать?
6177cbcc4aea4287101698.png
  • Вопрос задан
  • 145 просмотров
Решения вопроса 2
saboteur_kiev
@saboteur_kiev
software engineer
А зачем?
Вы хотите это запушить? Тогда поменяется история для всех участников, и они все должны с этим согласиться и скачать новый вариант ветки с коммитами. Сможете синхронизировать эту активность для всех участников? (тут скорее всего самый простой вариант, что вы у себя удаляете этот коммит, например переделывая всю ветку через rebase или rebase со squash, а остальные участники удаляют у себя весь репозиторий и скачивают его с нуля).

Но зачем такое делать? Коммит в ветке просто показатель что в этом месте был мерж из другой ветки, и чтобы не было мерж коммитов по идее надо было во время мержа выбирать вариант
Ответ написан
sergey-kuznetsov
@sergey-kuznetsov
Автоматизатор
Если капитан любит линейную историю то легко можно избавиться от коммита слияния:

git rebase origin/master databаse_branch

Эта команда пересадит ветку databаse_branch на вершину актуальной ветки database, которая судя по всему связана с веткой master в вышестоящем репозитории origin. Коммит слияния исчезнет.

Затем придётся принудительно обновить в вышестоящем репозитории эту ветку:

git push --force

И если кто-то её уже скачивал к себе, то попросить их обновиться через:

git pull databаse_branch --rebase

Как-то так. Я мог не угадать названия веток, так как по скрину не всё видно. Но принцип решения должен сработать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@mkone112
Начинающий питонист.
По идее
git revert -m 1 <hash>
ну или если больше никто репу не стягивал:
git reset --hard <hash_до_нужного коммита>
Ответ написан
Можно сделать rebase на ветку которая пулилась.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы