В git как мне удалить / удалить указанный c коммит из истории (перебазировать) программно? - PullRequest
1 голос
/ 03 марта 2020

Я знаю, как в интерактивном режиме изменить историю git и drop определенный c коммит, но я не нашел способа сделать это полностью автоматически.

Я хотел бы определить конкретные c коммиты (например, содержащие строку magi c) и удалить их скриптом.

Примерно так:

# identify and remove all commits which would be merged to master but should not
for i in $(git --no-pager log --grep='no-push' --pretty=format:"%h" --no-merges HEAD ^master)
do
    echo "Drop commit $i"
    git rebase --drop $i   # <== this is what I want to do
done

Любые идеи

1 Ответ

0 голосов
/ 03 марта 2020

Взято из здесь (спасибо jonrsharpe ):

# identify and remove all commits which would be merged to master but should not
for i in $(git --no-pager log --grep='no-push' --pretty=format:"%h" --no-merges HEAD ^master)
do
    echo "Drop commit $i"
    git rebase -p --onto $i^ $i
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...