Ответ 1
Вам нужно будет использовать git filter-branch
(в вашем репо) и принудительно нажать на github.
Пример из руководства, который касается почти той же ситуации, когда вы хотите удалить фиксации от конкретного пользователя:
git filter-branch --commit-filter '
if [ "$GIT_AUTHOR_NAME" = "Darl McBribe" ];
then
skip_commit "[email protected]";
else
git commit-tree "[email protected]";
fi' HEAD
Обратите внимание, что это перепишет вашу историю, и это может повлиять на других, которые также используют ваш совет repo.Github для соавторов:
Работа с сотрудниками
У вас могут быть соавторы, которые вытащили вашу испорченную ветку и создали их собственные ветки. После того, как они принесут вам новую ветку, они необходимо будет использовать git rebase на своих ветвях, чтобы переустановить их на верхней части новой. Коллаб должен также обеспечить, чтобы их ветвь не повторно вводит файл, так как это переопределит .gitignoreфайл. Убедитесь, что ваш коллаб использует rebase и не сливается, иначе он просто вернет файл и всю испорченную историю... и вероятно, столкнутся с некоторыми конфликтами слияния.