Странно, что советуют делать какие-то ветки под окружение, привязывать куда-то токены к названиям.
Тут намешано несколько разных вещей. Если есть тимлид, он должен разбираться.
Для того, чтобы писать на винде, а хостить на линуксе желательно использовать докер. Ну или хотя бы сборку проекта всегда делать на одном раннере, чтобы не было косяков, что "у меня работает, а на проде нет".
В гите хранится кодовая база, можете процессы брать любые, gitflow там или чего. Основное - в кодовой базе не должно быть секретов, чтобы одну и ту же сборку можно было тестировать и раскатывать на разные окружения dev/stage/prod
Секреты, типа строки подключения, токены и прочие данные, которые не должны отсвечивать неправильно хранить в репозитории. Они должны лежать в хранилищах секретов, в облачных провайдерах точно есть, погуглите key vault или тип того. Для простоты иногда хранят в коде (еще раз, это не правильно) не знаю, что в питоне, файлы типа appsettings.dev.json, appsettings.stage.json, appsettings.prod.json, типо таких. Иногда такие профили хранятся только у "ответственного специалиста", который занимается публикацией, но это не удобно. Зависит от уровня зрелости проекта
Окружения dev/stage/prod проще разворачивать на отдельных виртуалках, чтобы был айпишник, для телеговского бота он вроде нужен. Если нет возможности разнести на разные виртуалки, а задача держать все окружения на одном сервере, тогда их вешают на разные порты и обычно используют nginx для проксирования запросов. Ну и в таком случае домены надо прикручивать