Git - Восстановить указанный c файл в старом слиянии, удалить из истории - PullRequest
0 голосов
/ 03 февраля 2020

В нескольких PR'ах go произошла случайная перемена в коммите, которого не должно было быть. Я хотел бы вернуть один файл из одного слияния назад на несколько слияний и удалить его из истории, не затрагивая при этом недавние слияния. Сам файл не редактировался в других коммитах.

1 Ответ

0 голосов
/ 03 февраля 2020

Вы можете сделать это с помощью git filter-branch

git filter-branch --tree-filter 'rm -f <filename>' HEAD

См. Pro Git: переписывание истории для получения дополнительной информации.

Но BFG Repo Очиститель проще и быстрее.

bfg --delete-files <filename> <repo dir>

Если вы хотите переписать один коммит, который теперь состоит из нескольких слияний назад, и сохранить эти слияния, используйте интерактивный перебаз с слиянием.

git rebase -i -m -r <the commit>^

Любой, кто работает над этой веткой, должен git pull --rebase=merges обновить свою работу поверх измененной истории.

См. этот ответ для получения более подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...