Задать вопрос
@matweykai
Standart coder ; )

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

Мне нужно удалить merge коммит, который я сделал при pull'e из удалёнки. Как это можно сделать?
6177cbcc4aea4287101698.png
  • Вопрос задан
  • 6827 просмотров
Подписаться 1 Простой 9 комментариев
Помогут разобраться в теме Все курсы
  • ProductStar
    Python + Flask + Git: веб-разработка с нуля
    2 месяца
    Далее
  • Учебный центр IBS
    DEV-007 Введение в систему контроля версий Git
    1 неделя
    Далее
  • Stepik
    Git (система контроля версий)
    1 неделя
    Далее
Решения вопроса 2
saboteur_kiev
@saboteur_kiev Куратор тега Git
software engineer
А зачем?
Вы хотите это запушить? Тогда поменяется история для всех участников, и они все должны с этим согласиться и скачать новый вариант ветки с коммитами. Сможете синхронизировать эту активность для всех участников? (тут скорее всего самый простой вариант, что вы у себя удаляете этот коммит, например переделывая всю ветку через rebase или rebase со squash, а остальные участники удаляют у себя весь репозиторий и скачивают его с нуля).

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

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 на ветку которая пулилась.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
Made In Dream Санкт-Петербург
от 100 000 до 220 000 ₽
от 250 000 до 320 000 ₽