Daizygod, сообщение о ошибке говорит что вы не создали свою тематическую ветку от main, который на гитхабе. Возможно вы вместо клонирования с гитхаба создали другой репозиторий с другой новой main. Теперь у вас два независимых дерева коммитов и их не получится просто так слить.
Но можно пересадить одну ветку поверх другой, чтобы исправить проблему
git fetch
git rebase origin/main
git push --force
LakeForest, пакет filter-branch устарел, сейчас рекомендуется использовать filter-repo, он быстрее и надёжнее.
И обязательно проводить такие опасные чистки на свеже клонированном репозитории, чтобы не рвать волосы на голове потом.
Ерунду советуете.
Автор же указал, что сам файл удалять не надо, нужно удалить лишь его изменения.
Потому что изменения файла не предназначены для попадания в данный Merge Request.
Black_Fire, на всякий случай нужно уточнить. После удаления файлов в рабочем каталоге, вы закоммитили этот факт в новой ветке? Если нет, тогда при переключении в другую ветку будет казаться что и в старой ветке файлы удалены. Что конечно не так.
Romanuss, если содержимое ветки не совпадает с рабочей копией, значит есть незакоммиченные изменения. Это же очевидно. Pull не затирает рабочую копию, а делает merge. Так что все правки остаются на месте даже после подкачки обновлений.
Актуализировать с веткой код в рабочем каталоге можно командой git reset --hard
Чтобы восстановить ветку, достаточно помнить её хеш.
Если вы видите её в на локальном компе, значит там ещё не успели удалить из remotes.
Надо просто восстановить локально и протолкнуть обратно на битбакет.