Автоматическая перебазировка для удаления фиксации, которая изменяет файл?

#git #git-merge #rebase #git-commit #git-rewrite-history

#git #git-слияние #перебазирование #git-commit #git-перезапись-история

Вопрос:

Я новичок в перебазировании git и делаю что-то немного дурацкое и глупое. Итак, допустим, у меня есть эти коммиты, которые все изменяют один и тот же файл file.txt

a -> b -> c -> d -> e

Я хочу просто удалить фиксацию c .

Моя стратегия для этого — перебазировать b d , сохранив d изменения, чтобы они читались так

a -> b -> d -> e

Я пытаюсь сделать это с помощью этой команды

 git rebase --rebase-merges --onto c^ c
 

Это приводит к неудачному слиянию, я также пробовал это, -s ours но это также не удалось.

Однако это работает, когда каждый коммит изменяет другой файл.

Что я должен сделать, чтобы достичь этой цели?

Ответ №1:

В этом случае вы почти наверняка столкнетесь с конфликтом, потому что конфликт действительно существует, и нет способа избежать решения этой проблемы. Вам придется разрешить конфликт , а затем бежать git rebase --continue .

Это работает, когда каждый коммит изменяет другой файл, потому что коммиты, которые касаются разных файлов, обычно не конфликтуют (если нет переименования или копирования).

Комментарии:

1. Бах! Хорошо, это отслеживает. Я хочу запустить это автоматически в скрипте, но это сработает