Как удалить все не нужные коммиты и локал и на сервере, как буд-то их и не было?

Для удаления всех ненужных коммитов и удаленной их истории как будто их и не было, вам может потребоваться использовать команды git reset, git rebase и git push --force.

Прежде чем продолжить, хочу предупредить, что эти операции могут быть опасными и подвергнуть вашу работу потенциальной потере данных, поэтому перед выполнением любых команд рекомендуется создать резервную копию вашего репозитория.

Вот как вы можете удалить все ненужные коммиты и локально, и на удаленном сервере:

1. git log - сначала нужно определить хэш коммита, до которого нужно удалить все ненужные коммиты. Запишите этот хэш коммита, так как вам понадобится его позже.

2. git checkout <ваша ветка> - перейдите на ветку, на которой вы хотите удалить коммиты.

3. git reset --hard <хэш коммита> - с помощью этой команды вы устанавливаете вашу текущую ветку (HEAD) на указанный коммит, и все коммиты после него удаляются.

4. git push origin <ваша ветка> --force - использование флага --force позволяет вам принудительно отправить изменения на удаленный сервер, заменяя историю коммитов.

После выполнения этих команд все коммиты после указанного вами коммита будут удалены. Однако обратите внимание, что эти команды изменяют историю коммитов, поэтому возможны проблемы с другими людьми, которые работают с этим репозиторием.

Важно отметить, что использование команды --force с git push может быть опасно, так как вы перезаписываете историю удаленного репозитория, поэтому обязательно предупредите других участников команды о своих действиях и обязательно сделайте резервную копию перед выполнением этих команд.

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