Ошибка "[rejected] main -> main (non-fast-forward)" указывает на то, что ваша локальная ветка отстает от удаленной ветки на GitHub. Это может произойти, когда кто-то другой внес изменения в удаленную ветку после того, как вы склонировали репозиторий.
Вот как вы можете опубликовать свои изменения без перезаписи существующих веток:
1. Убедитесь, что ваш локальный репозиторий обновлен до последней версии из удаленной ветки на GitHub. Для этого выполните команду `git pull origin main`, где `origin` - имя удаленного репозитория, а `main` - имя ветки.
2. Создайте новую ветку, чтобы опубликовать свои изменения. Вы можете использовать команду `git branch <имя новой ветки>`, чтобы создать новую ветку на основе текущего состояния вашей локальной ветки.
3. Переключитесь на новую ветку с помощью команды `git checkout <имя новой ветки>`.
4. Опубликуйте новую ветку на GitHub с помощью команды `git push origin <имя новой ветки>`. Здесь `origin` - имя удаленного репозитория, а `<имя новой ветки>` - имя вашей новой ветки.
Теперь вы можете увидеть вашу новую ветку на GitHub и опубликовать проект без перезаписи существующих веток.